版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
緒論*§1.1數(shù)據(jù)庫(kù)系統(tǒng)概述數(shù)據(jù)處理與數(shù)據(jù)管理數(shù)據(jù)管理技術(shù)的發(fā)展階段數(shù)據(jù)庫(kù)技術(shù)的基本術(shù)語(yǔ)*信息(能源、材料科學(xué)構(gòu)成三大支柱)現(xiàn)實(shí)世界事物的存在方式或運(yùn)動(dòng)狀態(tài)的反映。具有可感知、可加工、可傳遞和可再生等自然屬性
數(shù)據(jù)用物理符號(hào)記錄下來(lái)的可以鑒別的信息,可以是數(shù)值數(shù)據(jù),也可以是非數(shù)值數(shù)據(jù),如聲音、圖像等。計(jì)算機(jī)中數(shù)據(jù)能輸入計(jì)算機(jī),并能為其處理的符號(hào)序列*§1.1.1數(shù)據(jù)處理與數(shù)據(jù)管理信息與數(shù)據(jù)的聯(lián)系數(shù)據(jù)是信息的符號(hào)表示,或稱載體。信息是數(shù)據(jù)的內(nèi)涵,是數(shù)據(jù)的語(yǔ)義解釋。信息與數(shù)據(jù)是密切相關(guān)聯(lián)的。例,一幅黑白圖象數(shù)據(jù)——黑白點(diǎn)陣信息——臉譜*§1.1.1數(shù)據(jù)處理與數(shù)據(jù)管理信息處理:從已知的信息出發(fā),經(jīng)演繹推理,導(dǎo)出新的信息。*數(shù)據(jù)處理:將原始信息表示成數(shù)據(jù)(稱為源數(shù)據(jù)),然后對(duì)這些源數(shù)據(jù)進(jìn)行收集、存儲(chǔ)、加工和推導(dǎo)得出新的數(shù)據(jù),這些結(jié)果數(shù)據(jù)表示了新的信息。這些新的信息,可以作為某種決策的依據(jù)或用于新的推導(dǎo)。說(shuō)明:信息是有價(jià)值的,信息價(jià)值與它的準(zhǔn)確性、及時(shí)性、完整性和可靠性有關(guān),為了提高信息的價(jià)值,就要用科學(xué)的方法來(lái)管理信息,這種科學(xué)的方法就是數(shù)據(jù)庫(kù)技術(shù)?!?.1.1數(shù)據(jù)處理與數(shù)據(jù)管理*數(shù)據(jù)管理:數(shù)據(jù)處理中負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行組織、存儲(chǔ)、更新、檢索和維護(hù)等任務(wù)。數(shù)據(jù)管理是MIS的中心問(wèn)題。數(shù)據(jù)管理的最新技術(shù)是數(shù)據(jù)庫(kù)技術(shù)?!?.1.1數(shù)據(jù)處理與數(shù)據(jù)管理§1.1.2數(shù)據(jù)管理的發(fā)展階段人工管理階段(50年代中期以前)文件系統(tǒng)階段(50年代后期---60年代中期)數(shù)據(jù)庫(kù)系統(tǒng)階段(60年代后期開始)數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)*考察要點(diǎn)各階段的技術(shù)及應(yīng)用背景計(jì)算機(jī)應(yīng)用范圍外存儲(chǔ)設(shè)備數(shù)據(jù)管理軟件各個(gè)階段的差別體現(xiàn)誰(shuí)管理數(shù)據(jù)數(shù)據(jù)面向誰(shuí)數(shù)據(jù)與應(yīng)用的獨(dú)立性§1.1.2數(shù)據(jù)管理的發(fā)展階段數(shù)據(jù)結(jié)構(gòu)
按照邏輯關(guān)系組織起來(lái)的一批數(shù)據(jù),按一定的存儲(chǔ)方法把它存儲(chǔ)在計(jì)算機(jī)中,并在這些數(shù)據(jù)上定義了一個(gè)運(yùn)算的集合邏輯結(jié)構(gòu)數(shù)據(jù)之間存在的邏輯關(guān)系表、樹、圖、數(shù)組…物理結(jié)構(gòu)數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)方式順序方式、鏈接方式…*課程號(hào)課程名學(xué)分先修課1001數(shù)據(jù)結(jié)構(gòu)410031002數(shù)據(jù)庫(kù)310011003PASCAL4人工管理階段背景計(jì)算機(jī)主要用于科學(xué)計(jì)算外存為順序存取設(shè)備磁帶、卡片、紙帶,沒(méi)有磁盤等直接存取設(shè)備沒(méi)有操作系統(tǒng),沒(méi)有數(shù)據(jù)管理軟件用戶用機(jī)器指令編碼,通過(guò)紙帶機(jī)輸入程序和數(shù)據(jù),程序運(yùn)行完畢后,由用戶取走紙帶和運(yùn)算結(jié)果,再讓下一用戶上機(jī)操作*人工管理階段特點(diǎn)用戶完全負(fù)責(zé)數(shù)據(jù)管理工作數(shù)據(jù)的組織、存儲(chǔ)結(jié)構(gòu)、存取方法、輸入輸出等數(shù)據(jù)完全面向特定的應(yīng)用程序每個(gè)用戶使用自己的數(shù)據(jù),數(shù)據(jù)不保存,用完就撤走數(shù)據(jù)與程序沒(méi)有獨(dú)立性程序中存取數(shù)據(jù)的子程序隨著存儲(chǔ)結(jié)構(gòu)的改變而改變磁帶的特點(diǎn)優(yōu)點(diǎn):廉價(jià)地存放大容量數(shù)據(jù)缺點(diǎn):順序訪問(wèn);1%所需,100%訪問(wèn)*人工管理階段*訪問(wèn)訪問(wèn)訪問(wèn)數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n程序1程序2程序n文件系統(tǒng)階段背景計(jì)算機(jī)不但用于科學(xué)計(jì)算,還用于管理外存有了磁盤、磁鼓等直接存取設(shè)備有了專門管理數(shù)據(jù)的軟件,一般稱為文件系統(tǒng)文件存儲(chǔ)空間的管理目錄管理文件讀寫管理文件保護(hù)向用戶提供操作接口*文件系統(tǒng)階段特點(diǎn)系統(tǒng)提供一定的數(shù)據(jù)管理功能存取方法(索引文件、直接存取文件、倒排文件等)支持對(duì)文件的基本操作(增、刪、改、查等),用戶程序不必考慮物理細(xì)節(jié)數(shù)據(jù)的存取基本上以記錄為單位數(shù)據(jù)仍是面向應(yīng)用的一個(gè)數(shù)據(jù)文件對(duì)應(yīng)一個(gè)或幾個(gè)用戶程序數(shù)據(jù)與程序有一定的獨(dú)立性文件的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)由系統(tǒng)進(jìn)行轉(zhuǎn)換,數(shù)據(jù)在存儲(chǔ)上的改變不一定反映在程序上*文件系統(tǒng)階段*數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n存取方式程序1程序2程序n文件系統(tǒng)階段*補(bǔ)貼系別姓名學(xué)號(hào)勞資科住址系別性別姓名學(xué)號(hào)房產(chǎn)科學(xué)位學(xué)分系別姓名學(xué)號(hào)學(xué)籍科學(xué)位出身年齡系別性別姓名學(xué)號(hào)人事科文件系統(tǒng)階段數(shù)據(jù)與程序的獨(dú)立性差文件系統(tǒng)的出現(xiàn)沒(méi)有改變數(shù)據(jù)與程序緊密結(jié)合的狀況,數(shù)據(jù)的邏輯結(jié)構(gòu)改變則必須修改應(yīng)用程序文件系統(tǒng)只是解脫了程序員對(duì)物理設(shè)備存取的負(fù)擔(dān),它并不理解數(shù)據(jù)的語(yǔ)義,只負(fù)責(zé)存儲(chǔ)數(shù)據(jù)的語(yǔ)義信息只能由程序來(lái)解釋。一個(gè)應(yīng)用若想共享另一個(gè)應(yīng)用生成的數(shù)據(jù),必須同另一個(gè)應(yīng)用溝通,了解數(shù)據(jù)的語(yǔ)義與組織方式*文件系統(tǒng)階段數(shù)據(jù)的共享性差,冗余度大數(shù)據(jù)面向應(yīng)用即使不同應(yīng)用程序所需要的數(shù)據(jù)有部分相同時(shí),也必須建立各自的文件,而不能共享相同的數(shù)據(jù)數(shù)據(jù)孤立數(shù)據(jù)分散管理,許多文件,許多數(shù)據(jù)格式數(shù)據(jù)的不一致性由于數(shù)據(jù)存在很多副本,給數(shù)據(jù)的修改與維護(hù)帶來(lái)了困難,容易造成數(shù)據(jù)的不一致性*文件系統(tǒng)階段*數(shù)據(jù)查詢困難記錄之間無(wú)聯(lián)系應(yīng)用自己編程實(shí)現(xiàn)對(duì)每個(gè)查詢都重新編碼數(shù)據(jù)完整性難于保證數(shù)據(jù)庫(kù)系統(tǒng)階段背景計(jì)算機(jī)管理的數(shù)據(jù)量大,關(guān)系復(fù)雜,共享性要求強(qiáng)(多種應(yīng)用、不同語(yǔ)言共享數(shù)據(jù))外存有了大容量磁盤,光盤軟件價(jià)格上升,硬件價(jià)格下降,編制和維護(hù)軟件及應(yīng)用程序成本相對(duì)增加,其中維護(hù)的成本更高,力求降低*數(shù)據(jù)庫(kù)系統(tǒng)階段特點(diǎn)有了數(shù)據(jù)庫(kù)管理系統(tǒng)面向全組織,面向現(xiàn)實(shí)世界獨(dú)立性較強(qiáng)由DBMS統(tǒng)一存取,維護(hù)數(shù)據(jù)語(yǔ)義及結(jié)構(gòu)*示例
S(SNO,SNAME,SEX,DNAME) C(CNO,CNAME,CXS,CREDIT) SC(SNO,CNO,G) S表示學(xué)生,各屬性依次為學(xué)號(hào),姓名,性別,所在的系名; C表示課程,各屬性依次為課程號(hào),課程名,學(xué)時(shí),學(xué)分; SC表示選修關(guān)系,它的各屬性依次為學(xué)號(hào),課程號(hào),成績(jī)。*學(xué)生課程選修查詢“計(jì)算機(jī)系的所有學(xué)生”“選修數(shù)據(jù)庫(kù)技術(shù)課程的所有學(xué)生姓名”維護(hù)“不允許選修不存在的課程”示例——基于文件系統(tǒng)文件系統(tǒng)如何來(lái)組織?分別組織幾個(gè)文件,存儲(chǔ)各類對(duì)象的記錄系統(tǒng)不支持文件間的聯(lián)系,由應(yīng)用程序負(fù)責(zé)查詢表達(dá)及數(shù)據(jù)的維護(hù)*示例——基于文件系統(tǒng)分別組織幾個(gè)文件,存儲(chǔ)各類對(duì)象的記錄*CreateFile(S,C,SC)ScanFile(C)找到數(shù)據(jù)庫(kù)技術(shù)課的CNOScanFile(SC)找到對(duì)應(yīng)以上CNO的SNOScanFile(S)找到對(duì)應(yīng)以上SNO的學(xué)生姓名示例——基于文件系統(tǒng)*如果InsertFile(SC)ScanFile(C)判斷欲插入的課程號(hào)是否在C中如果DeleteFile(C)ScanFile(SCJ)判斷欲刪除的課程號(hào)是否在SC中示例——基于數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(關(guān)系)數(shù)據(jù)統(tǒng)一按表結(jié)構(gòu)存放,設(shè)為S,C,SC查詢:只需提查詢要求,由系統(tǒng)完成查詢過(guò)程
SELECTSNAME FROMS,C,SC WHERES.SNO=SC.SNO ANDSC.CNO=C.CNO ANDC.CNAME=“數(shù)據(jù)庫(kù)技術(shù)”維護(hù):應(yīng)用提出完整性約束,系統(tǒng)自動(dòng)檢查
CREATETABLESC(……, FOREIGNKEY(CNO)REFERENCESC(CNO),……)**學(xué)號(hào)姓名性別系別年齡住址出身學(xué)位學(xué)分補(bǔ)貼學(xué)籍科房產(chǎn)科人事科勞資科數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)面向全組織的復(fù)雜的數(shù)據(jù)結(jié)構(gòu)支持全企業(yè)的應(yīng)用而不是某一個(gè)應(yīng)用數(shù)據(jù)反映了客觀事物間的本質(zhì)聯(lián)系,而不是著眼于面向某個(gè)應(yīng)用,是有結(jié)構(gòu)的數(shù)據(jù)。這是數(shù)據(jù)庫(kù)系統(tǒng)的主要特征之一數(shù)據(jù)的結(jié)構(gòu)用數(shù)據(jù)模型描述,無(wú)需程序定義和解釋。數(shù)據(jù)可以變長(zhǎng)。數(shù)據(jù)的最小存取單位是數(shù)據(jù)項(xiàng)。*數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)數(shù)據(jù)的冗余度小,易擴(kuò)充數(shù)據(jù)面向整個(gè)系統(tǒng),而不是面向某一應(yīng)用,數(shù)據(jù)集中管理,數(shù)據(jù)共享,因此冗余度小節(jié)省存儲(chǔ)空間,減少存取時(shí)間,且可避免數(shù)據(jù)之間的不相容性和不一致性每個(gè)應(yīng)用選用數(shù)據(jù)庫(kù)的一個(gè)子集,只要重新選取不同子集或者加上一小部分?jǐn)?shù)據(jù),就可以滿足新的應(yīng)用要求,這就是易擴(kuò)充性*數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)具有較高的數(shù)據(jù)和程序的獨(dú)立性把數(shù)據(jù)庫(kù)的定義和描述從應(yīng)用程序中分離出去數(shù)據(jù)描述是分級(jí)的(全局邏輯、局部邏輯、存儲(chǔ))數(shù)據(jù)的存取由系統(tǒng)管理,用戶不必考慮存取路徑等細(xì)節(jié),從而簡(jiǎn)化了應(yīng)用程序*數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)統(tǒng)一的數(shù)據(jù)控制功能數(shù)據(jù)的安全性控制(Security)保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全,防止數(shù)據(jù)丟失或被竊取、破壞措施:用戶標(biāo)識(shí)與鑒定,存取控制數(shù)據(jù)的完整性控制(Integrity)數(shù)據(jù)的正確性、有效性、相容性措施:完整性約束條件定義和檢查*數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)統(tǒng)一的數(shù)據(jù)控制功能并發(fā)控制(Concurrency)對(duì)多用戶的并發(fā)操作加以控制、協(xié)調(diào),防止其互相干擾而得到錯(cuò)誤的結(jié)果并使數(shù)據(jù)庫(kù)完整性遭到破壞措施:封鎖數(shù)據(jù)庫(kù)的恢復(fù)(Recover)在數(shù)據(jù)庫(kù)被破壞或數(shù)據(jù)庫(kù)不可靠時(shí),系統(tǒng)有能力把數(shù)據(jù)庫(kù)恢復(fù)到最近某時(shí)刻的正確狀態(tài)措施:備粉和日志文件*§1.1.3數(shù)據(jù)庫(kù)技術(shù)基本術(shù)語(yǔ)數(shù)據(jù)庫(kù)(DataBaseDB)長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織(結(jié)構(gòu))的、可共享的數(shù)據(jù)集合。由DBMS統(tǒng)一管理,多用戶共享。特性:DB是具有邏輯關(guān)系和確定意義的數(shù)據(jù)集合;DB是針對(duì)明確的應(yīng)用目標(biāo)而設(shè)計(jì)、建立和加載的,每個(gè)DB都有一組用戶,并為這些用戶應(yīng)用服務(wù);一個(gè)DB表示了現(xiàn)實(shí)世界的某些方面。數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS(DataBaseManagementSystem)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是為DB的建立、使用和維護(hù)而配置的系統(tǒng)軟件,負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一管理和控制*§1.1.3數(shù)據(jù)庫(kù)技術(shù)基本術(shù)語(yǔ)數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSysyemDBS)計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,包括硬件、軟件、數(shù)據(jù)、人員。數(shù)據(jù)庫(kù)技術(shù):是研究數(shù)據(jù)庫(kù)結(jié)構(gòu)、存儲(chǔ)、設(shè)計(jì)和使用的一門軟件科學(xué)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)面向某方面實(shí)際應(yīng)用且由系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫(kù)系統(tǒng)資源開發(fā)出來(lái)的應(yīng)用軟件系統(tǒng)*§1.2數(shù)據(jù)模型在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬數(shù)據(jù)模型應(yīng)滿足三方面要求能比較真實(shí)地模擬現(xiàn)實(shí)世界容易為人所理解便于在計(jì)算機(jī)上實(shí)現(xiàn)*§1.2數(shù)據(jù)模型數(shù)據(jù)建模:描述了組織數(shù)據(jù)的框架結(jié)構(gòu)。如:樓房住戶-數(shù)據(jù);房間規(guī)格-數(shù)據(jù)模型---數(shù)據(jù)建模最后發(fā)展成為數(shù)據(jù)的存儲(chǔ)方式(數(shù)據(jù)字典中的定義)業(yè)務(wù)功能建模:用戶的最終需求。---業(yè)務(wù)功能建模最后發(fā)展成為應(yīng)用程序產(chǎn)生高效的應(yīng)用程序的前提是良好的數(shù)據(jù)模型。(正如10平米的房間無(wú)法成為會(huì)議廳一樣,一個(gè)糟糕的數(shù)據(jù)模型也無(wú)法產(chǎn)生高質(zhì)量的應(yīng)用。*§1.2數(shù)據(jù)模型為什么要建立數(shù)據(jù)模型(DataModel):象蓋大樓的設(shè)計(jì)圖一樣,DM可使所有的項(xiàng)目參與者都有一個(gè)共同的數(shù)據(jù)標(biāo)準(zhǔn)避免出現(xiàn)問(wèn)題再解決(邊干邊改的方式)可及早發(fā)現(xiàn)問(wèn)題加快應(yīng)用開發(fā)速度*§1.2數(shù)據(jù)模型數(shù)據(jù)抽象數(shù)據(jù)模型定義概念數(shù)據(jù)模型結(jié)構(gòu)數(shù)據(jù)模型的三要素結(jié)構(gòu)數(shù)據(jù)模型示例*§1.2.1數(shù)據(jù)抽象信息世界:數(shù)據(jù)庫(kù)系統(tǒng)是面向計(jì)算機(jī)的,而應(yīng)用是面向現(xiàn)實(shí)世界的,兩個(gè)世界存在著很大差異,要直接將現(xiàn)實(shí)世界中的語(yǔ)義映射到計(jì)算機(jī)世界是十分困難的,因此引入一個(gè)信息世界作為現(xiàn)實(shí)世界通向計(jì)算機(jī)實(shí)現(xiàn)的橋梁一方面,信息世界是對(duì)現(xiàn)實(shí)世界的抽象,從紛繁的現(xiàn)實(shí)世界中抽取出能反映現(xiàn)實(shí)本質(zhì)的概念和基本關(guān)系;另一方面,信息世界中的概念和關(guān)系,要以一定的方式映射到計(jì)算機(jī)世界中去,在計(jì)算機(jī)系統(tǒng)上最終實(shí)現(xiàn)。信息世界起到了承上啟下的作用*§1.2.1數(shù)據(jù)抽象*現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界認(rèn)識(shí)抽象轉(zhuǎn)換用戶計(jì)算機(jī)§1.2.2數(shù)據(jù)模型定義*數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中用于提供信息表示和操作手段的形式構(gòu)架應(yīng)用概念數(shù)據(jù)模型結(jié)構(gòu)數(shù)據(jù)模型現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界§1.2.2數(shù)據(jù)模型定義概念數(shù)據(jù)模型(與DBMS無(wú)關(guān))按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模用于組織信息世界的概念,表現(xiàn)從現(xiàn)實(shí)世界中抽象出來(lái)的事物以及它們之間的聯(lián)系這類模型強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,概念簡(jiǎn)單、清晰,易于用戶理解它是現(xiàn)實(shí)世界到信息世界的抽象,是用戶與數(shù)據(jù)庫(kù)設(shè)計(jì)人員之間進(jìn)行交流的語(yǔ)言如E-R模型*§1.2.3概念數(shù)據(jù)模型E-R圖*例:學(xué)生選修課程學(xué)生課程選修姓名學(xué)號(hào)系別課程名先修課學(xué)分成績(jī)用矩形表示實(shí)體型,在框內(nèi)寫上實(shí)體名用橢圓表示實(shí)體的屬性用無(wú)向邊把實(shí)體與其屬性連接起來(lái)用菱形表示實(shí)體間的聯(lián)系將參與聯(lián)系的實(shí)體用線段連接mn聯(lián)系的數(shù)量§1.2.2數(shù)據(jù)模型定義結(jié)構(gòu)(邏輯)數(shù)據(jù)模型從計(jì)算機(jī)實(shí)現(xiàn)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)建模是信息世界中的概念和聯(lián)系在計(jì)算機(jī)世界中的表示方法一般有嚴(yán)格的形式化定義,以便于在計(jì)算機(jī)上實(shí)現(xiàn)如層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P?§1.2.4結(jié)構(gòu)數(shù)據(jù)模型的三要素?cái)?shù)據(jù)結(jié)構(gòu)(描述系統(tǒng)的靜態(tài)特性)是指對(duì)實(shí)體類型和實(shí)體間聯(lián)系的表達(dá)和實(shí)現(xiàn)數(shù)據(jù)本身類型、內(nèi)容、性質(zhì)。如網(wǎng)狀模型中的數(shù)據(jù)項(xiàng)、記錄,關(guān)系模型中的域、屬性,關(guān)系等數(shù)據(jù)之間的聯(lián)系例如網(wǎng)狀模型中的系型,關(guān)系模型中的外碼在數(shù)據(jù)庫(kù)系統(tǒng)中一般按數(shù)據(jù)結(jié)構(gòu)的類型來(lái)命名數(shù)據(jù)模型*§1.2.4結(jié)構(gòu)數(shù)據(jù)模型的三要素?cái)?shù)據(jù)操作描述系統(tǒng)的動(dòng)態(tài)特性,即對(duì)數(shù)據(jù)庫(kù)中對(duì)象的實(shí)例允許執(zhí)行的操作的集合,包括操作及操作規(guī)則一般有檢索、更新(插入、刪除、修改)操作數(shù)據(jù)模型要定義操作含義、操作符號(hào)、操作規(guī)則,以及實(shí)現(xiàn)操作的語(yǔ)言數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是完整性規(guī)則的集合,規(guī)定數(shù)據(jù)庫(kù)狀態(tài)及狀態(tài)變化所應(yīng)滿足的條件,以保證數(shù)據(jù)的正確、有效、相容*§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—層次模型層次模型用樹結(jié)構(gòu)表示實(shí)體類型和實(shí)體間聯(lián)系的模型叫層次模型樹由節(jié)點(diǎn)和連線組成節(jié)點(diǎn)代表實(shí)體型記錄類型連線表示兩實(shí)體型間的一對(duì)多聯(lián)系樹的特性每棵樹有且僅有一個(gè)節(jié)點(diǎn)無(wú)父節(jié)點(diǎn),稱為樹的根樹中的其它節(jié)點(diǎn)都有且僅有一個(gè)父節(jié)點(diǎn)*§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—層次模型*地址系名系號(hào)教研室名教研室號(hào)年級(jí)姓名學(xué)號(hào)職稱姓名職工號(hào)教員學(xué)生數(shù)據(jù)庫(kù)模型§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—層次模型*R1101計(jì)算機(jī)D02數(shù)據(jù)庫(kù)R01G1王明S0012教授何璧E1101G2鄭直S0020G3周密S0199網(wǎng)絡(luò)R02人工智能R03講師劉新E3721教授王恩E1234助教付弈E3721教員學(xué)生數(shù)據(jù)庫(kù)的一個(gè)值§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—層次模型優(yōu)點(diǎn)層次數(shù)據(jù)模型簡(jiǎn)單,對(duì)具有一對(duì)多的層次關(guān)系的部門描述自然、直觀,容易理解缺點(diǎn)支持的聯(lián)系種類太少數(shù)據(jù)操縱不方便子結(jié)點(diǎn)的存取只能通過(guò)父結(jié)點(diǎn)來(lái)進(jìn)行插入、刪除復(fù)雜,父結(jié)點(diǎn)的刪除導(dǎo)致子結(jié)點(diǎn)的刪除,丟失必要的信息代表產(chǎn)品:IBM的IMS數(shù)據(jù)庫(kù),1969年研制成功*§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—網(wǎng)狀模型網(wǎng)狀模型(用有向圖表示實(shí)體類型和實(shí)體間聯(lián)系)是一個(gè)滿足下列條件的有向圖可以有一個(gè)以上的節(jié)點(diǎn)無(wú)父節(jié)點(diǎn)至少有一個(gè)節(jié)點(diǎn)有多于一個(gè)的父節(jié)點(diǎn)(排除樹結(jié)構(gòu))節(jié)點(diǎn)代表實(shí)體型,有向邊(從箭尾到箭頭)表示兩實(shí)體型間的一對(duì)多聯(lián)系*科室醫(yī)生病房病人實(shí)體型1:N聯(lián)系§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—網(wǎng)狀模型*學(xué)生課程選課年級(jí)姓名學(xué)號(hào)學(xué)分課程名課程號(hào)成績(jī)課程號(hào)學(xué)號(hào)AC1S1AC2S1BC1S2A-C2S2CC1S3S1S2S3C1C2§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—網(wǎng)狀模型優(yōu)點(diǎn)表達(dá)的聯(lián)系種類豐富性能良好,存取效率高缺點(diǎn)結(jié)構(gòu)復(fù)雜語(yǔ)言復(fù)雜DBTG報(bào)告1969年,由美國(guó)CODASYC(ConferenceOnDataSystemLanguage,數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)商會(huì))下屬的DBTG(DataBaseTaskGroup)組提出,確立了網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)的概念、方法、技術(shù)*§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—關(guān)系模型用二維表來(lái)表示實(shí)體型及其相互聯(lián)系*屬性元組男女男性別192221年齡D01李紅S02D02王偉S03D01張軍S01系號(hào)姓名學(xué)號(hào)聯(lián)系§1.2.4結(jié)構(gòu)數(shù)據(jù)模型—關(guān)系模型優(yōu)點(diǎn)簡(jiǎn)單,表的概念直觀、單一,用戶易理解非過(guò)程化的數(shù)據(jù)請(qǐng)求,數(shù)據(jù)請(qǐng)求可以不指明路徑數(shù)據(jù)獨(dú)立性,用戶只需提出“做什么”,無(wú)須說(shuō)明“怎么做”堅(jiān)實(shí)的理論基礎(chǔ)缺點(diǎn)效率低*§1.3數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)*
數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)可以考察的角度分為不同形式:數(shù)據(jù)庫(kù)模式結(jié)構(gòu):從數(shù)據(jù)庫(kù)管理系統(tǒng)角度,內(nèi)部體系結(jié)構(gòu)數(shù)據(jù)庫(kù)體系結(jié)構(gòu):從最終用戶角度,外部體系結(jié)構(gòu)§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)“型”和“值”的概念型與值的區(qū)別:型是指對(duì)某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說(shuō)明,值是型的一個(gè)具體賦值型是相對(duì)穩(wěn)定的,值是隨時(shí)間不斷變化的示例:學(xué)生記錄記錄型:(學(xué)號(hào),姓名,性別,系別,年齡,籍貫)該記錄型的一個(gè)記錄值:(900201,李明,男,計(jì)算機(jī),22,江蘇)*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)模式(Schema)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)和特征的描述;是型的描述反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系模式是相對(duì)穩(wěn)定的模式的一個(gè)實(shí)例(Instance)模式的一個(gè)具體值反映數(shù)據(jù)庫(kù)某一時(shí)刻的狀態(tài)同一個(gè)模式可以有很多實(shí)例實(shí)例隨數(shù)據(jù)庫(kù)中的數(shù)據(jù)的更新而變動(dòng)*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)模式的分級(jí)為了提高數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性,使數(shù)據(jù)庫(kù)的用戶觀點(diǎn),即用戶看到的數(shù)據(jù)庫(kù),與數(shù)據(jù)庫(kù)的物理方面,即實(shí)際存儲(chǔ)的數(shù)據(jù)庫(kù)區(qū)分開來(lái),數(shù)據(jù)庫(kù)系統(tǒng)的模式是分級(jí)的數(shù)據(jù)庫(kù)系統(tǒng)三級(jí)模式結(jié)構(gòu)CODASYL(ConferenceOnDataSystemLanguage,美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)商會(huì))提出模式、外模式、存儲(chǔ)模式三級(jí)模式的概念。三級(jí)模式之間有兩級(jí)映象*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)*數(shù)據(jù)庫(kù)內(nèi)模式模式外模式2外模式3外模式1應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E外模式/模式映象模式/內(nèi)模式映象§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)模式(Schema)(概念模式、邏輯模式)是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶的公共數(shù)據(jù)視圖模式的地位:是數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)的中間層與數(shù)據(jù)的物理存儲(chǔ)細(xì)節(jié)和硬件環(huán)境無(wú)關(guān)與具體的應(yīng)用程序、開發(fā)工具及程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)模式的定義數(shù)據(jù)的邏輯結(jié)構(gòu)(數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等)數(shù)據(jù)之間的聯(lián)系數(shù)據(jù)有關(guān)的安全性、完整性要求*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)外模式(Sub-Schema)(子模式、用戶模式)數(shù)據(jù)庫(kù)用戶使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示不同用戶需求不同,看待數(shù)據(jù)的方式也可以不同,對(duì)數(shù)據(jù)保密的要求也可以不同,使用的程序設(shè)計(jì)語(yǔ)言也可以不同*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)內(nèi)模式(也稱存儲(chǔ)模式)是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式記錄的存儲(chǔ)方式(順序存儲(chǔ),按照B樹結(jié)構(gòu)存儲(chǔ),按hash方法存儲(chǔ))索引的組織方式數(shù)據(jù)是否壓縮存儲(chǔ)數(shù)據(jù)是否加密*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)外模式/模式映象定義某一個(gè)外模式和模式之間的對(duì)應(yīng)關(guān)系,映象定義通常包含在各外模式中當(dāng)模式改變時(shí),修改外模式/模式映象,使外模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的邏輯獨(dú)立性*§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)模式/內(nèi)模式映象定義數(shù)據(jù)邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系存儲(chǔ)結(jié)構(gòu)改變時(shí),修改模式/內(nèi)模式映象,使模式保持不變,從而應(yīng)用程序可以保持不變,稱為數(shù)據(jù)的物理獨(dú)立性*注:一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式,一個(gè)內(nèi)模式,但可以有多個(gè)外模式。
§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)*用戶1用戶2用戶4視圖V1視圖V1用戶3基本表B1基本表B2基本表B4基本表B3存儲(chǔ)文件S1存儲(chǔ)文件S2存儲(chǔ)文件S4存儲(chǔ)文件S3SQL數(shù)據(jù)庫(kù)體系結(jié)構(gòu)SQL用戶VIEWBaseTableStoredfile§1.3數(shù)據(jù)庫(kù)系統(tǒng)模式結(jié)構(gòu)*S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE)S(S#,SNAME,ADDRESS)學(xué)籍科S(S#,SNAME,CREDIT)房產(chǎn)科視圖視圖模式createV1selectS#,SNAME,ADDRESSfromS數(shù)據(jù)庫(kù)模式*V1(S#,SNAME,ADDRESS)學(xué)籍科V2(S#,SNAME,CREDIT)房產(chǎn)科B(S#,SNAME,SEX,AGE,ADDRESS,CREDIT)M(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DISSERTATION)視圖視圖模式模式createV1selectS#,SNAME,ADDRESSfromB
unionselectS#,SNAME,ADDRESSfromM*實(shí)例:數(shù)據(jù)庫(kù)保存了某單位的全部職工信息,有兩個(gè)用戶,財(cái)務(wù)(工資處理),人事(人事處理)工號(hào)姓名工資101102114125工號(hào)姓名年齡性別101102114125工號(hào)姓名性別年齡住址工資。。。101李里。。102張三114王五125劉上外模式/模式模式/內(nèi)模式外模式1模式內(nèi)模式外模式2§1.3DBS外部的體系結(jié)構(gòu)單用戶結(jié)構(gòu)
整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)(應(yīng)用程序、DBMS、數(shù)據(jù))裝在一臺(tái)計(jì)算機(jī)上,為一個(gè)用戶獨(dú)占,不同機(jī)器之間不能共享數(shù)據(jù)。*§1.3DBS外部的體系結(jié)構(gòu)主從式結(jié)構(gòu):一個(gè)主機(jī)帶多個(gè)終端的多用戶結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)集中存放在主機(jī)上,所有處理任務(wù)都由主機(jī)來(lái)完成各個(gè)用戶通過(guò)主機(jī)的終端并發(fā)地存取數(shù)據(jù)庫(kù),共享數(shù)據(jù)資源*§1.3DBS外部的體系結(jié)構(gòu)主從式結(jié)構(gòu):一個(gè)主機(jī)帶多個(gè)終端的多用戶結(jié)構(gòu)*主機(jī)終端§1.3DBS外部的體系結(jié)構(gòu)分布式結(jié)構(gòu)
數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯上是一個(gè)整體,但物理地分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同結(jié)點(diǎn)上。網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)都可以獨(dú)立處理本地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù),執(zhí)行局部應(yīng)用同時(shí)也可以同時(shí)存取和處理多個(gè)異地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù),執(zhí)行全局應(yīng)用*§1.3DBS外部的體系結(jié)構(gòu)客戶/服務(wù)器結(jié)構(gòu):把DBMS功能和應(yīng)用分開網(wǎng)絡(luò)中某個(gè)(些)結(jié)點(diǎn)上的計(jì)算機(jī)專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫(kù)服務(wù)器,簡(jiǎn)稱服務(wù)器其他結(jié)點(diǎn)上的計(jì)算機(jī)安裝DBMS的外圍應(yīng)用開發(fā)工具,用戶的應(yīng)用系統(tǒng),稱為客戶機(jī)*客戶/服務(wù)器結(jié)構(gòu)的優(yōu)點(diǎn)客戶端的用戶請(qǐng)求被傳送到數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行處理后,只將結(jié)果返回給用戶,從而顯著減少了數(shù)據(jù)傳輸量數(shù)據(jù)庫(kù)更加開放客戶與服務(wù)器一般都能在多種不同的硬件和軟件平臺(tái)上運(yùn)行可以使用不同廠商的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)工具*§1.3DBS外部的體系結(jié)構(gòu)客戶/服務(wù)器結(jié)構(gòu)的缺點(diǎn)系統(tǒng)安裝復(fù)雜,工作量大。應(yīng)用維護(hù)困難,難于保密,造成安全性差。相同的應(yīng)用程序要重復(fù)安裝在每一臺(tái)客戶機(jī)上,從系統(tǒng)總體來(lái)看,大大浪費(fèi)了系統(tǒng)資源。系統(tǒng)規(guī)模達(dá)到數(shù)百數(shù)千臺(tái)客戶機(jī),它們的硬件配置、操作系統(tǒng)又常常不同,要為每一個(gè)客戶機(jī)安裝應(yīng)用程序和相應(yīng)的工具模塊,其安裝維護(hù)代價(jià)便不可接受了。*§1.3DBS外部的體系結(jié)構(gòu)§1.3DBS外部的體系結(jié)構(gòu)瀏覽器/應(yīng)用服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器結(jié)構(gòu)客戶端:瀏覽器軟件、用戶界面統(tǒng)一,用戶容易掌握大大減少了培訓(xùn)時(shí)間與費(fèi)用。服務(wù)器端分為兩部分:Web服務(wù)器、應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器等大大減少了系統(tǒng)開發(fā)和維護(hù)代價(jià)能夠支持?jǐn)?shù)萬(wàn)甚至更多的用戶*§1.4數(shù)據(jù)庫(kù)系統(tǒng)的構(gòu)成數(shù)據(jù)庫(kù)系統(tǒng)的軟硬件層次數(shù)據(jù)庫(kù)系統(tǒng)的主要成分DBMS主要功能*數(shù)據(jù)庫(kù)系統(tǒng)的軟硬件層次*硬件操作系統(tǒng)DBMS,編譯系統(tǒng)應(yīng)用開發(fā)工具軟件應(yīng)用系統(tǒng)PB,VB,VCDELPHYOracle,Db2,Sybase,SQLServer,Informix數(shù)據(jù)庫(kù)系統(tǒng)的主要成分硬件大內(nèi)存,放得下OS,DBMS核心,系統(tǒng)緩沖區(qū),用戶工作區(qū)等大容量、直接存取的外存設(shè)備作數(shù)據(jù)備份的磁帶軟件:OS,DBMS,高級(jí)語(yǔ)言編譯系統(tǒng)及其與數(shù)據(jù)庫(kù)的接口,應(yīng)用開發(fā)工具,應(yīng)用系統(tǒng)數(shù)據(jù)目標(biāo)數(shù)據(jù):數(shù)據(jù)本身描述數(shù)據(jù):對(duì)數(shù)據(jù)的說(shuō)明信息*數(shù)據(jù)庫(kù)系統(tǒng)的主要成分用戶最終用戶:通過(guò)應(yīng)用系統(tǒng)的用戶接口(菜單等)使用數(shù)據(jù)庫(kù)應(yīng)用程序員:基于外模式來(lái)編寫應(yīng)用程序系統(tǒng)分析員:負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范定義,確定系統(tǒng)的軟硬件配置,參與數(shù)據(jù)庫(kù)模式設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)人員:參加用戶需求調(diào)查和系統(tǒng)分析、確定數(shù)據(jù)庫(kù)中的數(shù)據(jù)、設(shè)計(jì)數(shù)據(jù)庫(kù)各級(jí)模式數(shù)據(jù)庫(kù)管理員DBA:負(fù)責(zé)數(shù)據(jù)庫(kù)的全面管理和控制*數(shù)據(jù)庫(kù)系統(tǒng)的主要成分DBA的重要性重要資源維護(hù)整個(gè)組織的信息資源共享資源多用戶共享,需要統(tǒng)一管理、協(xié)調(diào)、監(jiān)控DBA職責(zé)建庫(kù)方面確定模式、外模式、存儲(chǔ)結(jié)構(gòu)、存取策略負(fù)責(zé)數(shù)據(jù)的整理和裝入*數(shù)據(jù)庫(kù)系統(tǒng)的主要成分用庫(kù)方面定義完整性約束條件規(guī)定數(shù)據(jù)的保密級(jí)別、用戶權(quán)限監(jiān)督和控制數(shù)據(jù)庫(kù)的運(yùn)行情況制定后援和恢復(fù)策略,負(fù)責(zé)故障恢復(fù)改進(jìn)方面監(jiān)督分析系統(tǒng)的性能(空間利用率,處理效率)數(shù)據(jù)庫(kù)重組織,物理上重組織,以提高性能數(shù)據(jù)庫(kù)重構(gòu)造,設(shè)計(jì)上較大改動(dòng),模式和內(nèi)模式修改*DBMS的主要功能數(shù)據(jù)庫(kù)定義功能DDL語(yǔ)言(DataDescriptionLanguage)描述外模式、模式、內(nèi)模式(源模式)模式翻譯程序把源模式翻譯成目標(biāo)模式,存入數(shù)據(jù)字典中數(shù)據(jù)字典(DATADICTIONARY):存放DB中數(shù)據(jù)的各種定義,由DBMS自動(dòng)維護(hù),在大型系統(tǒng)中,DD單獨(dú)成為一個(gè)系統(tǒng)。*源模式模式翻譯程序數(shù)據(jù)字典目標(biāo)模式DBMS的主要功能數(shù)據(jù)存取功能DML語(yǔ)言(Datamanipulationlanguage)對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索、插入、修改、刪除DML類型宿主型:DML不獨(dú)立使用,嵌入到高級(jí)語(yǔ)言(主語(yǔ)言)程序中使用自含型:獨(dú)立使用,交互式命令方式*DBMS的主要功能數(shù)據(jù)庫(kù)運(yùn)行管理并發(fā)控制、存取控制、完整性約束條件檢查和執(zhí)行,日志組織和管理,事務(wù)管理和自動(dòng)恢復(fù)數(shù)據(jù)組織、存儲(chǔ)和管理用戶數(shù)據(jù)、索引、數(shù)據(jù)字典的組織、存儲(chǔ)和管理,包括文件結(jié)構(gòu)、存取方式、數(shù)據(jù)之間聯(lián)系的實(shí)現(xiàn)等數(shù)據(jù)庫(kù)的建立和維護(hù)功能數(shù)據(jù)的裝入、轉(zhuǎn)換、卸出,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)、恢復(fù)、性能監(jiān)視和分析等*§1.5數(shù)據(jù)庫(kù)的若干研究方向新的數(shù)據(jù)模型面向?qū)ο髷?shù)據(jù)庫(kù)對(duì)象-關(guān)系數(shù)據(jù)庫(kù)XML數(shù)據(jù)庫(kù)新的體系結(jié)構(gòu)并行數(shù)據(jù)庫(kù)VeryLargeDatabase分布式數(shù)據(jù)庫(kù)網(wǎng)絡(luò)+數(shù)據(jù)庫(kù)數(shù)據(jù)流管理系統(tǒng):DSMS*1.新的數(shù)據(jù)庫(kù)管理系統(tǒng)§1.5數(shù)據(jù)庫(kù)的若干研究方向商業(yè)智能從事務(wù)型操作向分析型操作決策支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)挖掘OLAP信息集成“turntheWebintodatabase”*2.新的數(shù)據(jù)庫(kù)應(yīng)用§1.5數(shù)據(jù)庫(kù)的若干研究方向時(shí)態(tài)數(shù)據(jù)庫(kù)管理被處理事件的歷史性信息管理數(shù)據(jù)庫(kù)系統(tǒng)中元事件的時(shí)態(tài)信息移動(dòng)數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)的擴(kuò)展數(shù)據(jù)庫(kù)+無(wú)線網(wǎng)絡(luò)即時(shí)性+就地性手機(jī)、汽車、PDA...主動(dòng)數(shù)據(jù)庫(kù)被動(dòng)服務(wù):命令驅(qū)動(dòng)主動(dòng)服務(wù):事件驅(qū)動(dòng)實(shí)時(shí)監(jiān)控系統(tǒng),異常情況主動(dòng)處理...*3.特種數(shù)據(jù)庫(kù)§1.5數(shù)據(jù)庫(kù)的若干研究方向模糊數(shù)據(jù)庫(kù)處理模糊對(duì)象模糊≠糊涂模糊專家系統(tǒng),模擬計(jì)算......實(shí)時(shí)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的“定時(shí)”存取和對(duì)“短暫有效”數(shù)據(jù)的存取工廠生產(chǎn)過(guò)程控制、證券交易、雷達(dá)跟蹤...演繹數(shù)據(jù)庫(kù)人工智能+數(shù)據(jù)庫(kù)*3.特種數(shù)據(jù)庫(kù)§1.5數(shù)據(jù)庫(kù)的若干研究方向生物數(shù)據(jù)庫(kù)CAD數(shù)據(jù)庫(kù)空間數(shù)據(jù)庫(kù)幾何數(shù)據(jù)空間查詢*4.領(lǐng)域數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)*2.1關(guān)系模型概述E.F.Codd于70年代初提出關(guān)系數(shù)據(jù)理論,他因此獲得1981年的ACM圖靈獎(jiǎng)關(guān)系理論是建立在集合代數(shù)理論基礎(chǔ)上的,有著堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)早期代表系統(tǒng)SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商業(yè)數(shù)據(jù)庫(kù)系統(tǒng)Oracle,Informix,Sybase,SQLServer,DB2Access,F(xiàn)oxpro,F(xiàn)oxbase*2.1關(guān)系模型概述關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上*2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示數(shù)據(jù)的邏輯結(jié)構(gòu)----二維表從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。*2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念2.2.1關(guān)系2.2.2關(guān)系模式2.2.3關(guān)系數(shù)據(jù)庫(kù)*2.2.1關(guān)系基本概念域(Domain)一組值的集合,這組值具有相同的數(shù)據(jù)類型如整數(shù)的集合、字符串的集合、全體學(xué)生的集合笛卡爾積(Car’tesianProduct)一組域D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}笛卡爾積的每個(gè)元素(d1,d2,…,dn)稱作一個(gè)n-元組(n-tuple)元組的每一個(gè)值di叫做一個(gè)分量(component)若Di的基數(shù)為mi,則笛卡爾積的基數(shù)為*2.2.1關(guān)系基本概念*例1給出三個(gè)域:
D1=SUPERVISOR={張清玫,劉逸}
D2=SPECIALITY={計(jì)算機(jī)專業(yè),信息專業(yè)}
D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積是個(gè)三元組集合,元組個(gè)數(shù)為2×2×3,是所有可能的(教師,專業(yè),研究生)元組集合:D1×D2×D3={(張清玫,計(jì)算機(jī)專業(yè),李勇),(張清玫,計(jì)算機(jī)專業(yè),劉晨),(張清玫,計(jì)算機(jī)專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計(jì)算機(jī)專業(yè),李勇),(劉逸,計(jì)算機(jī)專業(yè),劉晨),(劉逸,計(jì)算機(jī)專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}2.2.1關(guān)系基本概念*笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。2.2.1關(guān)系基本概念關(guān)系笛卡爾積D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系,用R(D1,D2,…,Dn)表示R是關(guān)系的名字,n是關(guān)系的度或目關(guān)系是笛卡爾積中有意義的子集關(guān)系也可以表示為二維表*2.2.1關(guān)系基本概念例在表2.1的笛卡爾積中取出有實(shí)際意義的元組來(lái)構(gòu)造關(guān)系關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設(shè):導(dǎo)師與專業(yè):1:1,導(dǎo)師與研究生:1:n于是:SAP關(guān)系可以包含三個(gè)元組{(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}*2.2.1關(guān)系基本概念關(guān)系的表示關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。*元組屬性2.2.1關(guān)系基本概念關(guān)系的性質(zhì)列是同質(zhì)的即每一列中的分量來(lái)自同一域,是同一類型的數(shù)據(jù)。不同的列可來(lái)自同一域,每列必須有不同的屬性名。行列的順序無(wú)關(guān)緊要任意兩個(gè)元組不能完全相同(集合內(nèi)不能有相同的兩個(gè)元素)每一分量必須是不可再分的數(shù)據(jù)。滿足這一條件的關(guān)系稱作滿足第一范式(1NF)的*2.2.1關(guān)系基本概念數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系實(shí)體集、聯(lián)系都表示成關(guān)系*DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)學(xué)生選修屬于系教師工作管理課程先修2.2.1關(guān)系基本概念*DEPTD#DNDEANSS#SNSEXAGED#CC#CNCREDITPC#PROFP#PNSALD#SCS#C#SCORE2.2.1關(guān)系基本概念候選碼(CandidateKey)關(guān)系中的一個(gè)屬性組,其值能唯一標(biāo)識(shí)一個(gè)元組。若從屬性組中去掉任何一個(gè)屬性,它就不具有這一性質(zhì)了,這樣的屬性組稱作候選碼如DEPT中的D#,DN都可作為候選碼任何一個(gè)候選碼中的屬性稱作主屬性如SC中的S#,C#*2.2.1關(guān)系基本概念主碼(PK:PrimaryKey)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),從一個(gè)關(guān)系的多個(gè)候選碼中選定一個(gè)作為主碼如可選定D#作為DEPT的主碼外碼(FK:ForeignKey)關(guān)系R中的一個(gè)屬性組,它不是R的碼,但它與另一個(gè)關(guān)系S的碼相對(duì)應(yīng),則稱這個(gè)屬性組為R的外部碼如S關(guān)系中的D#屬性*2.2.2關(guān)系模式關(guān)系模式:關(guān)系的描述稱作關(guān)系模式*關(guān)系模式可以形式化地表示為:
R(U,D,dom,F(xiàn)) R關(guān)系名
U
組成該關(guān)系的屬性名集合
D
屬性組U中屬性所來(lái)自的域
dom屬性向域的映象集合
F
屬性間的數(shù)據(jù)依賴關(guān)系集合2.2.2關(guān)系模式關(guān)系模式關(guān)系模式簡(jiǎn)記為R(U)
或R(A1,A2,…,An)屬性向域的映象一般直接說(shuō)明為屬性的類型、長(zhǎng)度等某一時(shí)刻對(duì)應(yīng)某個(gè)關(guān)系模式的內(nèi)容(元組的集合)稱作關(guān)系關(guān)系模式是型,是穩(wěn)定的關(guān)系是某一時(shí)刻的值,是隨時(shí)間不斷變化的*2.2.3關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)的型稱為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述。包括若干域的定義以及在這些域上定義的若干關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常簡(jiǎn)稱為關(guān)系數(shù)據(jù)庫(kù)*2.3關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件關(guān)系模型中三類完整性約束實(shí)體完整性參照完整性用戶定義的完整性實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。*2.3關(guān)系的完整性實(shí)體完整性關(guān)系的主碼中的屬性值不能為空值空值:不知道或無(wú)意義意義:關(guān)系對(duì)應(yīng)到現(xiàn)實(shí)世界中的實(shí)體集,元組對(duì)應(yīng)到實(shí)體,實(shí)體是相互可區(qū)分的,通過(guò)主碼來(lái)唯一標(biāo)識(shí),若主碼為空,則出現(xiàn)不可標(biāo)識(shí)的實(shí)體,這是不容許的*2.3關(guān)系的完整性參照完整性如果關(guān)系R2的外部碼Fk與關(guān)系R1的主碼Pk相對(duì)應(yīng),則R2中的每一個(gè)元組的Fk值或者等于R1中某個(gè)元組的Pk值,或者為空值R2稱為參照關(guān)系,R1稱為被參照(目標(biāo))關(guān)系意義:如果關(guān)系R2的某個(gè)元組t2參照了關(guān)系R1的某個(gè)元組t1,則t1必須存在例如關(guān)系S在D#上的取值有兩種可能空值,表示該學(xué)生尚未分到任何系中若非空值,則必須是DEPT關(guān)系中某個(gè)元組的D#值,表示該學(xué)生不可能分到一個(gè)不存在的系中*2.3關(guān)系的完整性*SnoSnameSsexSageSdept99101張三男20CS99103李四男19CS……………98102王五女19ISSdeptSlocSnameCS曹光標(biāo)大樓計(jì)算機(jī)科學(xué)IS竺可楨大樓信息科學(xué)MA華羅庚大樓數(shù)學(xué)………主碼外碼,不是Student的主碼,但是Department的主碼。Student中Sdept中的值都取自Department表中相應(yīng)Sdept的值。指定外碼時(shí),列名不一定要求相同。StudentDepartment2.3關(guān)系的完整性用戶定義的完整性用戶針對(duì)具體的應(yīng)用環(huán)境定義的完整性約束條件,如教授工資不能小于2000元,S#要求是8位整數(shù),SEX取值為“男”或“女”系統(tǒng)支持實(shí)體完整性和參照完整性由系統(tǒng)自動(dòng)支持系統(tǒng)應(yīng)提供定義和檢驗(yàn)用戶定義的完整性的機(jī)制*2.3關(guān)系的完整性*供應(yīng)商號(hào)供應(yīng)商名所在城市B01紅星北京S10宇宙上海T20黎明天津Z01立新重慶零件號(hào)顏色供應(yīng)商號(hào)010紅B01312白S10201藍(lán)T20今要向關(guān)系P中插入新行,新行的值分別列出如下。哪些行能夠插入?A.(‘037’,‘綠’,null)B.(null,‘黃’,‘T20’)C.(‘201’,‘紅’,‘T20’)D.(‘105’,‘藍(lán)’,‘B01’)E.(‘101’,‘黃’,‘T11’)零件關(guān)系P(主碼是“零件號(hào)”,外碼是“供應(yīng)商號(hào)”)供應(yīng)商關(guān)系S(主碼是“供應(yīng)商號(hào)”)2.4關(guān)系數(shù)據(jù)操作常用的關(guān)系操作查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢的表達(dá)能力是其中最主要的部分*2.4關(guān)系數(shù)據(jù)操作關(guān)系數(shù)據(jù)語(yǔ)言的種類關(guān)系代數(shù)語(yǔ)言用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢要求典型代表:ISBL*2.4關(guān)系數(shù)據(jù)操作關(guān)系數(shù)據(jù)語(yǔ)言的種類(續(xù))關(guān)系演算語(yǔ)言:用謂詞來(lái)表達(dá)查詢要求元組關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是元組變量典型代表:APLHA,QUEL域關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是域變量典型代表:QBE具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語(yǔ)言典型代表:SQL*2.4關(guān)系數(shù)據(jù)操作關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)一體化一般關(guān)系系統(tǒng)的數(shù)據(jù)語(yǔ)言都同時(shí)具有數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制語(yǔ)言,而不是分為幾個(gè)語(yǔ)言。對(duì)象單一,都是關(guān)系,因此操作符也單一。而非關(guān)系型系統(tǒng),如DBTG,有對(duì)記錄的操作,有對(duì)系的操作非過(guò)程化用戶只需提出“做什么”,無(wú)須說(shuō)明“怎么做”,存取路徑的選擇和操作過(guò)程由系統(tǒng)自動(dòng)完成面向集合的存取方式操作對(duì)象是一個(gè)或多個(gè)關(guān)系,結(jié)果是一個(gè)新的關(guān)系(一次一關(guān)系)。非關(guān)系系統(tǒng)是一次一記錄的方式*2.5關(guān)系代數(shù)基本運(yùn)算(5種)一元運(yùn)算:選擇、投影、更名多元運(yùn)算:笛卡兒積、并、集合差其它運(yùn)算集合交、自然連接、除擴(kuò)展運(yùn)算、賦值、廣義投影、外連接*關(guān)系代數(shù)的一些記號(hào)給定關(guān)系模式R(A1,A2,…,An),設(shè)R是它的一個(gè)具體的關(guān)系,t
R是關(guān)系的一個(gè)元組分量設(shè)t
R,則t[Ai]表示元組t中相應(yīng)于屬性Ai的一個(gè)分量屬性列(可以用序號(hào))Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},稱A為屬性列A表示{A1,A2,…,An}中去掉A后剩余的屬性組t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])*ABC367257443選擇運(yùn)算(Selection)基本定義在關(guān)系R中選擇滿足給定條件的元組(從行的角度)
F(R)={t|tR,F(t)=‘真’}F是選擇的條件,
tR,F(xiàn)(t)要么為真,要么為假F的形式:由邏輯運(yùn)算符連接算術(shù)表達(dá)式而成 邏輯表達(dá)式:,, 算術(shù)表達(dá)式:XY X,Y是屬性名、常量、或簡(jiǎn)單函數(shù) 是比較算符,{,,,,,≠}*選擇運(yùn)算*ABC367257723443R
A<5(R)
ABC367257443
A<5
C=7(R)
ABC367257選擇運(yùn)算示例找年齡小于20的男學(xué)生
AGE<20∧
SEX=‘男’(S)找CS系或IS系的學(xué)生。
Dno=‘CS’vDno=‘IS’(S)*投影(Projection)定義從關(guān)系R中取若干列組成新的關(guān)系(從列的角度)
A(R)={t[A]|tR,AR}投影的結(jié)果中要去掉相同的行*cbcfedcbaCBABCbcef
R
B,C(R)投影示例給出所有學(xué)生的姓名和年齡
SNAME,AGE(S)找信息系學(xué)生的姓名
SNAME(Dno=‘IS’(S))*更名運(yùn)算定義給一個(gè)關(guān)系表達(dá)式賦予名字
x(E)
返回表達(dá)式E的結(jié)果,并把名字x賦給E
x(A1,A2,
,
An)(E)
返回表達(dá)式E的結(jié)果,并把名字x賦給E,同時(shí)將各屬性更名為A1,A2,
,An
關(guān)系被看作一個(gè)最小的關(guān)系代數(shù)表達(dá)式,可以將更名運(yùn)算施加到關(guān)系上,得到具有不同名字的同一關(guān)系。這在同一關(guān)系多次參與同一運(yùn)算時(shí)很有幫助*并運(yùn)算定義所有至少出現(xiàn)在兩個(gè)關(guān)系中之一的元組集合R
S={r|r
R
r
S}*R
S兩個(gè)關(guān)系R和S若進(jìn)行并運(yùn)算,則它們必須是相容的:關(guān)系R和S必須是同元的,即它們的屬性數(shù)目必須相同對(duì)
i,R的第i個(gè)屬性的域必須和S的第i個(gè)屬性的域相同并運(yùn)算*ABC367257723443RABC345723SABC367257723443345R∪S并運(yùn)算示例求選修了1號(hào)或2號(hào)課程的學(xué)生號(hào) 方案1:∏Sno(Cno=‘1’∨
Cno=‘2’(SC))
方案2:∏Sno(Cno=‘1’(SC))∪∏Sno(Cno=‘2’(SC))*差運(yùn)算定義所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合R
S={r|r
R
r
S}R和S必須是相容的*R
S差運(yùn)算*ABC367257723443RABC345723SABC367257443R-SABC367S-R差運(yùn)算示例求選修了1號(hào)而沒(méi)有選2號(hào)課程的學(xué)生號(hào)∏Sno(Cno=‘1’(SC))-∏Sno(Cno=‘2’(SC))∏S#(C#=‘1’
C#≠‘2’(SC))*交運(yùn)算(Intersection)定義所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合R
S={r|r
R
r
S}交運(yùn)算可以通過(guò)差運(yùn)算來(lái)重寫R
S=R
(R
S)*R
S交運(yùn)算*ABC367257723443RABC345723SABC723R∩S交運(yùn)算示例求同時(shí)選修了1號(hào)和2號(hào)課程的學(xué)生號(hào)錯(cuò)誤的寫法:∏Sno(Cno=‘1’
Cno=‘2’(SC))正確的寫法:∏Sno(Cno=‘1’(SC))∩∏Sno(Cno=‘2’(SC))*廣義笛卡爾積運(yùn)算元組的連串(Concatenation)若r=(r1,…
,rn),s=(s1,…,sm),則定義r與s的連串為:定義兩個(gè)關(guān)系R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個(gè)分量是R中的一個(gè)元組,后m個(gè)分量是S中的一個(gè)元組R
S的度為R與S的度之和,R
S的元組個(gè)數(shù)為R和S的元組個(gè)數(shù)的乘積*rs=(r1,…
,rn,s1,…,sm)R
S={rs|r
R
s
S}廣義笛卡爾積運(yùn)算*AB
12rCD
10102010EaabbsAB
11112222CD
1010201010102010Eaabbaabbrx
s廣義笛卡爾積運(yùn)算
A=C(rxs)rxs
A=C(rxs)*AB
11112222CD
1010201010102010EaabbaabbABCDE
122
101020aab笛卡爾積運(yùn)算求選修c1課程的學(xué)生姓名*S#SN…s1toms2jerryS#C#…s1c1s2c2S#SN…S#C#…s1toms1c1s1toms2c2s2jerrys1c1s2jerrys2c2廣義笛卡爾積運(yùn)算示例求數(shù)學(xué)成績(jī)比王紅同學(xué)高的學(xué)生*89數(shù)學(xué)張軍86數(shù)學(xué)王紅93物理張軍成績(jī)課程姓名∏S.姓名(
R.成績(jī)S.成績(jī)R.課程=數(shù)學(xué)S.課程=數(shù)學(xué)R.姓名=王紅
(R
S(R))R86數(shù)學(xué)王紅86數(shù)學(xué)王紅86數(shù)學(xué)王紅R.成績(jī)R.課程R.姓名89數(shù)學(xué)張軍86數(shù)學(xué)王紅93物理張軍S.成績(jī)S.課程S.姓名*A廣義笛卡爾積運(yùn)算連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組
A,B為R和S上度數(shù)相等且可比的屬性列為算術(shù)比較符,為等號(hào)時(shí)稱為等值連接含義:運(yùn)算是用R每一元組掃描S所有元組,尋求當(dāng)前元組中A
B為真的的元組實(shí)行連接
RS=
r[A]
S[B](
R×S)*A
BA
BRS={rs|r
R
s
S
r[A]
S[B]}連接求數(shù)學(xué)成績(jī)比王紅同學(xué)高的學(xué)生*987654321CBADE3162ABCDE123311236245662
RSB<D
R
S∏S.姓名((課程=數(shù)學(xué)姓名=王紅(R))(
課程=數(shù)學(xué)
S(R)))R.成績(jī)<S.成績(jī)自然連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取在相同屬性列B上取值相等的元組,并去掉重復(fù)的屬性列。自然連接與等值連接的不同自然連接中相等的分量必須是相同的屬性組,并且要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。*RS={rs[B]|r
R
s
S
r[B]=S[B]}自然連接為什么非常有用?自然連接*AB
12412CD
aababrB13123DaaabbE
s
11112
aaaab
ABCDErs987654321CBACD3162
R
SABCD12314562
RS自然連接示例求1號(hào)學(xué)生所在系的名稱∏DN(Sno=‘1’(S)DEPT)**關(guān)系R(A,B),S(A,C),R與S中元組個(gè)數(shù)分別為10,15,試填寫下表A是R的主碼無(wú)任何條件最大元組數(shù)最小元組數(shù)表達(dá)式條件思考與練習(xí)除運(yùn)算(Quotient)象集(ImageSet)關(guān)系R(X,Z),X,Z是屬性組,x是X上的取值,定義x在R中的象集為Zx={t[Z]|t
Rt[X]=x}
從R中選出在X上取值為x的元組,去掉X上的分量,只留Z上的分量*XZ張軍同學(xué)所選修的全部課程x=張軍Zx姓名課程張軍物理王紅數(shù)學(xué)張軍數(shù)學(xué)課程數(shù)學(xué)物理除運(yùn)算
做法:逐個(gè)考慮選課關(guān)系SC中的元組r,求r在姓名SN上的分量x,再求x在選課關(guān)系中的象集課程Cx,若Cx包含了所有的課程C,則x是滿足條件的一個(gè)元組*如何得到選修了全部課程的學(xué)生?{x|x=r[SN]
rSC
CxC}選修全部課程的學(xué)生全部課程x同學(xué)所選修的全部課程除運(yùn)算除定義R(X,Y)
S(Y,Z)={x|x=r[x]
r
R
Yx
Y(S)
}R(X,Y)
S(Y)={x|x=r[x]
r
R
Yx
S}R(X,Y)
S(Y)={t|t
X(R)uS(tu
r)}R
S=
X(R)
X(
X(R)
Y(S)
R)*除運(yùn)算*
物理數(shù)學(xué)課程=物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名王紅張軍姓名沒(méi)有選修全部課程的學(xué)生所有學(xué)生選修全部課程
=數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名姓名王紅姓名王紅張軍姓名王紅
=姓名張軍選修了全部課程的學(xué)生R
S=
X(R)
X(
X(R)
Y(S)
R)除運(yùn)算*ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR
AB(R)S
AB(R)
CD(S)
AB(R)
CD(S)-RABCDbccdR
S=ABabbcedABbc-=①④②③除運(yùn)算示例求同時(shí)選修了1和2號(hào)課程的學(xué)生號(hào)
方案1:∏Sno,Cno(SC)Cno=‘1’
Cno=‘2’(C)
方案2:∏Sno(SCCno=‘1’
Cno=‘2’(C))
哪一個(gè)正確?*除運(yùn)算*
課程數(shù)學(xué)物理=姓名課程成績(jī)張軍物理93王紅數(shù)學(xué)86張軍數(shù)學(xué)93王紅物理92
課程數(shù)學(xué)物理姓名課程張軍物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理姓名張軍王紅=姓名成績(jī)張軍93選修了全部課程并且成績(jī)都相同的學(xué)生選修了全部課程的學(xué)生關(guān)系代數(shù)查詢實(shí)例求未選修001號(hào)課程的學(xué)生號(hào)方案1:∏S#(S)-∏S#(C#=c1(SC)) 方案2:∏S#(C#≠c1(SC))*哪一個(gè)正確?S#C#Gs1c190s2c195s1c296S#SNAGEs1……s2……s3……原因:只排除了非c1課程的元組,但不能排除選修多門課程(其中包括c1課程)的元組關(guān)系代數(shù)查詢實(shí)例*求僅選修了c1號(hào)課程的學(xué)生號(hào)選修c1號(hào)課程的學(xué)生-僅選c1號(hào)課程之外的學(xué)生∏S#(SC)-∏S#(C#≠c1(SC))∏S#(C#=c1(SC))-∏S#(SC-C#=c1(SC))S#C#s1c1s1c2s2c1s3c2S#C#s1c1s2c1S#C#s1c2s3c2關(guān)系代數(shù)查詢實(shí)例求選修c1課程比s1學(xué)生的該門課程成績(jī)高的學(xué)生SCSC(s1,c1,g1,?,c1,g2),g1<g2*關(guān)系代數(shù)查詢實(shí)例求選修了至少兩門課的學(xué)生SCSC(s1,c1,g1,s1,c2,g2),c1
c2*關(guān)系代數(shù)查詢實(shí)例求每門課程的先修課的先修課CC(c3,c2,c2,c1)*C#PC#c1nullc2c1c3c2關(guān)系代數(shù)查詢實(shí)例求選修課程中包含了所有S01號(hào)學(xué)生所選修課程的學(xué)生號(hào)∏S#(∏S#,C#(SC)∏C#(S#=S01(SC))
**關(guān)系代數(shù)查詢實(shí)例stock(s#,date,price) 找出一直上漲的股票
對(duì)于同一只股票,ifd1>d2thenp1>p2 找出下跌過(guò)的股票,d1>d2andp1<p2關(guān)系代數(shù)查詢實(shí)例求選修了其先修課為6號(hào)課程的學(xué)生名。方案1:∏SN(PC#=6(SCCS))
方案2:∏SN(PC#=6(C)SCS))*哪一個(gè)效率更高?查詢選修了全部課程的學(xué)生的學(xué)號(hào)和姓名
∏S#,C#(SC)∏C#(C)∏S#,SN(S)賦值運(yùn)算定義為使查詢表達(dá)簡(jiǎn)單、清晰,可以將一個(gè)復(fù)雜的關(guān)系代數(shù)表達(dá)式分成幾個(gè)部分,每一部分都賦予一個(gè)臨時(shí)關(guān)系變量,該變量可被看作關(guān)系而在后面的表達(dá)式中使用臨時(shí)關(guān)系變量
關(guān)系代數(shù)表達(dá)式賦值給臨時(shí)關(guān)系變量只是一種結(jié)果的傳遞,而賦值給永久關(guān)系則意味著對(duì)數(shù)據(jù)庫(kù)的修改*賦值運(yùn)算示例R
S=
X(R)
X(
X(R)
Y(S)
R)用賦值重寫為:temp1
X(R)temp2
X(temp1
Y(S)
R)result
temp1
temp2*擴(kuò)展關(guān)系代數(shù)運(yùn)算--廣義投影定義在投影列表中使用算術(shù)表達(dá)式來(lái)對(duì)投影進(jìn)行擴(kuò)展
F1,F2
,…,Fn
(E)F1,F2,…,Fn是算術(shù)表達(dá)式示例求教工應(yīng)繳納的所得稅
P#
,SAL*5/100
(PROF)
p#,INCOME-TAX
(P#
,SAL*5/100
(PROF))*擴(kuò)展關(guān)系代數(shù)運(yùn)算--外連接例:列出老師的有關(guān)信息,包括姓名、工資、所教授的課程∏P#,PN,SAL,C#,CN((PROF)PCC)*500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#問(wèn)題:有關(guān)P03號(hào)職工的姓名和工資信息沒(méi)有顯示出來(lái)擴(kuò)展關(guān)系代數(shù)運(yùn)算--外連接外連接為避免自然連接時(shí)因失配而發(fā)生的信息丟失,可以假定往參與連接的一方表中附加一個(gè)取值全為空值的行,它和參與連接的另一方表中的任何一個(gè)未匹配上的元組都能匹配,稱之為外連接外連接=自然連接+失配的元組(懸掛元組)外連接的形式:左外連接、右外連接、全外連接左外連接=自然連接+左側(cè)表中失配的元組右外連接=自然連接+右側(cè)表中失配的元組全外連接=自然連接+兩側(cè)表中失配的元組*擴(kuò)展關(guān)系代數(shù)運(yùn)算--外連接*數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#所有老師的信息擴(kuò)展關(guān)系代數(shù)運(yùn)算--外連接*數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#所有課程的信息500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#擴(kuò)展關(guān)系代數(shù)運(yùn)算--外連接*500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#所有老師和課程的信息*補(bǔ)充作業(yè)SCSNOSNAMEAGESEX
CNOCNAMETEACHER
1李強(qiáng)20男K1C語(yǔ)言王華2劉麗18女K5數(shù)據(jù)庫(kù)原理程軍5張平19男K8編譯原理程軍
SCSNOCNOGRADE1K1832K1655K1922K5905K5865K876*補(bǔ)充作業(yè)
查詢程軍老師所授的課程號(hào)和課程名查詢年齡大于19的男學(xué)生的學(xué)號(hào)和姓名查詢至少選修程軍老師所授全部課程的學(xué)生姓名查詢李強(qiáng)同學(xué)不學(xué)課程的課程號(hào)查詢?nèi)繉W(xué)生都選修的課程的課程號(hào)和課程名*查詢選修課程包含程軍老師所授的課程之一的學(xué)生的學(xué)號(hào)查詢選修課程號(hào)為K1和K5的學(xué)生的學(xué)號(hào)查詢選修全部的課程的學(xué)生姓名查詢選修課程包含學(xué)號(hào)為2的學(xué)生所修課程的學(xué)生學(xué)號(hào)查詢選修課程名為“C語(yǔ)言”的學(xué)生學(xué)號(hào)補(bǔ)充作業(yè)*∏Cno,Cname(Teacher=‘程軍’(C))∏Sno,Sname(age>19^sex=‘男’(S))∏Sno,Sname(∏Sno,Cno(SC)∏Cno(teacher=‘程軍’(C))∏Sno,Sname(S))∏cno(C)-∏cno(
sname=‘李強(qiáng)’(S)
(Sc))∏Cno,Cname(C(∏Sno,Cno(SC)∏sno(S)))補(bǔ)充作業(yè)參考答案*∏sno(Teacher=‘程軍’(C)SC)∏Sc.sno(sc.sno=sc1.sno∧o=‘K1’∧o=‘K2’(SC×
SC1(SC)))∏Sname(∏Sno,Cno(SC)∏Cno(C)S)∏Sno(∏Sno,Cno(SC)∏Cno(
Cno=‘2’(S
C))∏Sno(
Cname=‘C語(yǔ)言’(C)
(SC))補(bǔ)充作業(yè)參考答案
關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL*
3.1SQL概述歷史SQL:StruceuredQueryLanguang1974年,由Boyce和Chamber提出1975-1979年,在SystemR上實(shí)現(xiàn),由IBM的SanJose研究室研制,稱為Sequel后來(lái)SEQUEL簡(jiǎn)稱為SQL(StructuredQueryLanguage),即“結(jié)構(gòu)式查詢語(yǔ)言”,SQL的發(fā)音仍為“sequel”?,F(xiàn)在SQL已經(jīng)成為一個(gè)標(biāo)準(zhǔn)。*3.1SQL概述*用戶1用戶2用戶4視圖V1視圖V1用戶3基本表B1基本表B2基本表B4基本表B3存儲(chǔ)文件S1存儲(chǔ)文件S2存儲(chǔ)文件S4存儲(chǔ)文件S3SQL數(shù)據(jù)庫(kù)體系結(jié)構(gòu)SQL用戶VIEWBaseTableStoredfile3.1SQL概述特點(diǎn)一體化集DDL,DML,DCL于一體單一的結(jié)構(gòu)----關(guān)系,帶來(lái)了數(shù)據(jù)操作符的統(tǒng)一面向集合的操作方式一次一集合高度非過(guò)程化用戶只需提出“做什么”,無(wú)須告訴“怎么做”,不必了解存取路徑兩種使用方式,統(tǒng)一的語(yǔ)法結(jié)構(gòu)SQL既是自含式語(yǔ)言(用戶使用),又是嵌入式語(yǔ)言(程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度LNG運(yùn)輸車輛改裝與安全檢測(cè)合同3篇
- 2024年食品行業(yè)社會(huì)保險(xiǎn)管理與代繳合同
- 2025年度物流車輛智能系統(tǒng)升級(jí)合同4篇
- 2025年度醫(yī)療健康公司股權(quán)轉(zhuǎn)讓與產(chǎn)業(yè)鏈合作合同3篇
- 2025年度商業(yè)大廈車位包銷及物業(yè)管理合同4篇
- 2025年度智能倉(cāng)儲(chǔ)物流系統(tǒng)建設(shè)承包經(jīng)營(yíng)協(xié)議4篇
- 2024石材行業(yè)石材應(yīng)用技術(shù)研究采購(gòu)合同2篇
- 2025年度網(wǎng)絡(luò)直播個(gè)人勞務(wù)合同范本3篇
- 2025年度嬰幼兒專用牛奶采購(gòu)合作協(xié)議書3篇
- 2025年電動(dòng)自行車品牌代理銷售合同標(biāo)準(zhǔn)版2篇
- 專利補(bǔ)正書實(shí)例
- 《動(dòng)物生理學(xué)》課程思政優(yōu)秀案例
- 高分子材料完整版課件
- DB37∕T 5118-2018 市政工程資料管理標(biāo)準(zhǔn)
- 大氣紅色商務(wù)展望未來(lái)贏戰(zhàn)集團(tuán)年會(huì)PPT模板課件
- T∕CAWA 002-2021 中國(guó)疼痛科專業(yè)團(tuán)體標(biāo)準(zhǔn)
- 住宅工程公共區(qū)域精裝修施工組織設(shè)計(jì)(217頁(yè))
- 冷卻塔技術(shù)要求及質(zhì)量標(biāo)準(zhǔn)介紹
- (完整版)項(xiàng)目工程款收款收據(jù)
- 井點(diǎn)降水臺(tái)班記錄表
- 奇瑞汽車4S店各類表格模板
評(píng)論
0/150
提交評(píng)論