




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1單元
5數(shù)據(jù)庫技術(shù)基礎(chǔ)數(shù)據(jù)庫技術(shù)是研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設(shè)計、管理和使用的一門軟件學(xué)科,數(shù)據(jù)庫技術(shù)是在操作系統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展起來的,而且數(shù)據(jù)庫管理系統(tǒng)本身要在操作系統(tǒng)支持下才能工作。隨著計算機(jī)技術(shù)和相應(yīng)技術(shù)領(lǐng)域的發(fā)展,數(shù)據(jù)庫技術(shù)得到了極大的發(fā)展。軟件是新一代信息技術(shù)(InformationTechnology,IT)的靈魂,是數(shù)字經(jīng)濟(jì)發(fā)展的基礎(chǔ),而數(shù)據(jù)庫作為十分復(fù)雜、跨技術(shù)領(lǐng)域很多的關(guān)鍵基礎(chǔ)軟件,一般應(yīng)用軟件的數(shù)據(jù)處理都要與其進(jìn)行數(shù)據(jù)交互,所以數(shù)據(jù)庫對于計算產(chǎn)業(yè)的重要性不言而喻。22數(shù)據(jù)庫技術(shù)概述5.1數(shù)據(jù)庫系統(tǒng)5.25.35.45.55.65.7目錄數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫結(jié)構(gòu)查詢語言非關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計基礎(chǔ)5.
1數(shù)據(jù)庫技術(shù)概述數(shù)據(jù)庫技術(shù)就是存儲、處理、管理數(shù)據(jù)的一門計算機(jī)技術(shù),是計算機(jī)信息系統(tǒng)的重要技術(shù)基礎(chǔ)和支柱。數(shù)據(jù)庫技術(shù)涉及許多基本概念,主要包括信息、數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)以及數(shù)據(jù)庫系統(tǒng)等。35.1.1數(shù)據(jù)庫技術(shù)的相關(guān)概念1.?dāng)?shù)據(jù)描述事物的符號可稱為數(shù)據(jù),數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。例如,新生入學(xué)時,一般要填寫入學(xué)登記,把自己的基本情況寫下來,例如:姓名為張三,性別是男,身高為170cm。那么,張三、男、170cm就可以稱為數(shù)據(jù)。數(shù)據(jù)表示了登記者的一種特征或特性。數(shù)據(jù)種類可以是數(shù)字、文字、圖形、圖像、聲音、語言等。2.?dāng)?shù)據(jù)庫數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)、有組織的、可共享的大量相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲。數(shù)據(jù)庫具有較小冗余度、數(shù)據(jù)間聯(lián)系緊密而又有較高的數(shù)據(jù)獨立性等特點。數(shù)據(jù)庫有以下兩個比較典型的特點。①把在特定的環(huán)境中與某應(yīng)用程序相關(guān)的數(shù)據(jù)及其關(guān)系集中在一起,并按照一定的結(jié)構(gòu)形式進(jìn)行存儲,即集成性。②數(shù)據(jù)庫中的數(shù)據(jù)能被多個應(yīng)用程序所使用,即共享性。3.?dāng)?shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心組成部分,是對數(shù)據(jù)進(jìn)行管理的大型系統(tǒng)軟件,用戶在數(shù)據(jù)庫系統(tǒng)中的一些操作都是由數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)的。數(shù)據(jù)庫管理系統(tǒng)的功能主要包括數(shù)據(jù)庫的定義和操作、運行和管理、建立和維護(hù)等。數(shù)據(jù)庫管理系統(tǒng)有以下特點。①采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)冗余小,易擴(kuò)充,實現(xiàn)了數(shù)據(jù)共享。②具有較高的數(shù)據(jù)和程序獨立性,數(shù)據(jù)庫的獨立性有物理獨立性和邏輯獨立性。③提供了方便的用戶接口。④提供了4個方面的數(shù)據(jù)控制功能,分別是并發(fā)控制、恢復(fù)、完整性和安全性。數(shù)據(jù)庫中各個應(yīng)用程序所使用的數(shù)據(jù)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一規(guī)定,按照一定的數(shù)據(jù)模型組織和建立,由系統(tǒng)統(tǒng)一管理和集中控制。⑤增加了系統(tǒng)的靈活性。4.?dāng)?shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DatabaseApplicationSystem,DBAS)是在數(shù)據(jù)庫管理系統(tǒng)支持下建立的計算機(jī)應(yīng)用系統(tǒng)。數(shù)據(jù)庫應(yīng)用系統(tǒng)包括數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理員、普通用戶、硬件,例如,以數(shù)據(jù)庫為基礎(chǔ)的財務(wù)管理系統(tǒng)、人事管理系統(tǒng)、圖書管理系統(tǒng)等。無論是面向內(nèi)部業(yè)務(wù)和管理的管理信息系統(tǒng),還是面向外部提供信息服務(wù)的開放式信息系統(tǒng),從實現(xiàn)技術(shù)角度而言,都是以數(shù)據(jù)庫為基礎(chǔ)和核心的計算機(jī)應(yīng)用系統(tǒng)。4數(shù)據(jù)庫應(yīng)用系統(tǒng)有以下特點。①結(jié)構(gòu)特性:與數(shù)據(jù)庫狀態(tài)有關(guān),即與數(shù)據(jù)模型所反映的實體及實體間的聯(lián)系的靜態(tài)特性有關(guān)。結(jié)構(gòu)設(shè)計就是設(shè)計各級數(shù)據(jù)庫模式,決定數(shù)據(jù)庫系統(tǒng)的信息內(nèi)容,由數(shù)據(jù)庫設(shè)計來實現(xiàn)。②行為特性:與數(shù)據(jù)庫狀態(tài)轉(zhuǎn)換有關(guān),即改變實體及其特性的操作。它決定數(shù)據(jù)庫系統(tǒng)的功能,由事務(wù)處理等應(yīng)用程序設(shè)計來實現(xiàn)。根據(jù)數(shù)據(jù)庫應(yīng)用系統(tǒng)的結(jié)構(gòu)和行為兩方面的特性,系統(tǒng)設(shè)計開發(fā)分為兩個部分:一部分是作為數(shù)據(jù)庫應(yīng)用系統(tǒng)核心和基石的數(shù)據(jù)庫設(shè)計開發(fā);另一部分是相應(yīng)的數(shù)據(jù)庫應(yīng)用軟件的設(shè)計開發(fā)。這兩部分是緊密相關(guān)、相輔相成的,組成統(tǒng)一的數(shù)據(jù)庫工程。5.?dāng)?shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是實現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問計算機(jī)的硬件、軟件和數(shù)據(jù)庫資源組成的系統(tǒng),即采用數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。數(shù)據(jù)庫系統(tǒng)有以下特點。①數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)的共享性、獨立性好,數(shù)據(jù)存儲粒度小,數(shù)據(jù)庫管理系統(tǒng)為用戶提供了友好的接口。②數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)是數(shù)據(jù)模型,現(xiàn)有的數(shù)據(jù)庫系統(tǒng)均是基于某種數(shù)據(jù)模型的。③數(shù)據(jù)庫系統(tǒng)的核心是數(shù)據(jù)庫管理系統(tǒng)。④數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員、普通用戶和硬件構(gòu)成。56.?dāng)?shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用系統(tǒng)三者的區(qū)別與聯(lián)系(1)三者的區(qū)別①本質(zhì)不同。數(shù)據(jù)庫系統(tǒng)是一種軟件系統(tǒng),是為滿足數(shù)據(jù)處理的需求而發(fā)展起來的一種較為理想的數(shù)據(jù)處理系統(tǒng),也是一個為實際可運行的存儲、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。數(shù)據(jù)庫管理系統(tǒng)是實現(xiàn)把用戶抽象的邏輯數(shù)據(jù)處理后,轉(zhuǎn)換成計算機(jī)中具體的物理數(shù)據(jù)處理的軟件。數(shù)據(jù)庫應(yīng)用系統(tǒng)是在數(shù)據(jù)庫管理系統(tǒng)的支持下建立的一種計算機(jī)應(yīng)用系統(tǒng)。②組成不同。數(shù)據(jù)庫系統(tǒng)通常由軟件、數(shù)據(jù)庫和數(shù)據(jù)管理員等組成。其軟件主要包括操作系統(tǒng)、各種宿主語言、實用程序以及數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫管理系統(tǒng)由數(shù)據(jù)庫語言和數(shù)據(jù)庫管理例行程序組成。數(shù)據(jù)庫應(yīng)用系統(tǒng)由數(shù)據(jù)庫系統(tǒng)、應(yīng)用程序、用戶等組成。(2)三者的聯(lián)系三者都用于管理數(shù)據(jù)庫,其中數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫應(yīng)用系統(tǒng)的組成成分中都包含數(shù)據(jù)庫管理系統(tǒng),這兩者都是通過數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)對數(shù)據(jù)庫的管理和操控的。65.1.2數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分,是計算機(jī)數(shù)據(jù)處理與信息管理的核心。數(shù)據(jù)庫技術(shù)研究和解決了計算機(jī)信息處理過程中大量數(shù)據(jù)有效組織和存儲的問題,在數(shù)據(jù)庫系統(tǒng)中實現(xiàn)減少數(shù)據(jù)存儲冗余、數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效地檢索數(shù)據(jù)和處理數(shù)據(jù)。數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。數(shù)據(jù)庫技術(shù)是因數(shù)據(jù)管理任務(wù)的需要而產(chǎn)生的,數(shù)據(jù)管理是指對數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲、檢索和維護(hù),是數(shù)據(jù)處理的核心問題。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、高級數(shù)據(jù)庫、大數(shù)據(jù)等多個階段。75.1.3數(shù)據(jù)模型數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象,是數(shù)據(jù)庫系統(tǒng)中用以提供信息表示和操作手段的形式構(gòu)架。數(shù)據(jù)模型包括數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)部分、操作部分和約束條件。1.?dāng)?shù)據(jù)模型按應(yīng)用層次分類數(shù)據(jù)模型按應(yīng)用層次分成3種類型,分別是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。8(1)概念數(shù)據(jù)模型概念數(shù)據(jù)模型(ConceptualDataModel)是指按照用戶的觀點來對數(shù)據(jù)和信息進(jìn)行建模,是一種面向用戶、面向客觀世界的模型,主要用于數(shù)據(jù)庫設(shè)計,用來描述世界的概念化結(jié)構(gòu)。它幫助數(shù)據(jù)庫設(shè)計人員在設(shè)計的初始階段,擺脫計算機(jī)系統(tǒng)及數(shù)據(jù)庫管理系統(tǒng)的具體技術(shù)問題,集中精力分析數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在數(shù)據(jù)庫管理系統(tǒng)中實現(xiàn)。在概念數(shù)據(jù)模型中常用的有E-R(Entity-RelationshipApproach)模型(主要用實體-聯(lián)系方法表示,也稱為實體-聯(lián)系模型)、擴(kuò)充的E-R模型、面向?qū)ο竽P图爸^詞模型。(2)邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型(LogicalDataModel)是一種面向數(shù)據(jù)庫系統(tǒng)的模型,是具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,如層次數(shù)據(jù)模型(HierarchicalDataModel)、網(wǎng)狀數(shù)據(jù)模型(NetworkDataModel)等。此模型既面向用戶,又面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)。(3)物理數(shù)據(jù)模型物理數(shù)據(jù)模型(PhysicalDataModel)是一種面向計算機(jī)物理表示的模型,描述了數(shù)據(jù)在存儲介質(zhì)上的組織結(jié)構(gòu),它不但與具體的數(shù)據(jù)庫管理系統(tǒng)有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實現(xiàn)時都有其對應(yīng)的物理數(shù)據(jù)模型。為了保證其獨立性與可移植性,大部分物理數(shù)據(jù)模型的實現(xiàn)工作由數(shù)據(jù)庫管理系統(tǒng)自動完成,而設(shè)計者只設(shè)計索引、聚集等特殊結(jié)構(gòu)。92.基本數(shù)據(jù)模型基本數(shù)據(jù)模型(結(jié)構(gòu)數(shù)據(jù)模型)是指按照計算機(jī)系統(tǒng)的觀點來對數(shù)據(jù)和信息進(jìn)行建模,主要用于數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)。基本數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ),通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束3部分組成。其中數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述,數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述,完整性約束是一組完整性規(guī)則的集合。數(shù)據(jù)庫管理系統(tǒng)總是基于某種基本數(shù)據(jù)模型,常用的基本數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P汀#?)層次模型層次模型是數(shù)據(jù)庫技術(shù)中發(fā)展較早、技術(shù)上比較成熟的一種數(shù)據(jù)模型。它把數(shù)據(jù)按自然的層次關(guān)系組織起來,以反映數(shù)據(jù)之間的隸屬關(guān)系。將數(shù)據(jù)組織成有向、有序的樹結(jié)構(gòu),也叫樹形結(jié)構(gòu)。用樹形結(jié)構(gòu)表示實體類型及實體間的聯(lián)系,采用關(guān)鍵字來訪問每一層次的每一部分。結(jié)構(gòu)中的節(jié)點代表數(shù)據(jù)記錄,連線描述位于不同節(jié)點的數(shù)據(jù)間的隸屬關(guān)系(一對多的關(guān)系)。層次模型的樹形結(jié)構(gòu)如圖5-8所示。層次模型的優(yōu)點是記錄之間的聯(lián)系通過指針來實現(xiàn),存取方便且速度快,查詢效率較高,數(shù)據(jù)修改和數(shù)據(jù)庫擴(kuò)展容易實現(xiàn),檢索關(guān)鍵屬性十分方便。層次模型的缺點是只能表示一對多聯(lián)系,雖然有多種輔助手段實現(xiàn)多對多聯(lián)系,但比較復(fù)雜,用戶不易掌握。層次順序的嚴(yán)格和復(fù)雜導(dǎo)致數(shù)據(jù)的查詢和更新操作很復(fù)雜,應(yīng)用程序的編寫也比較復(fù)雜。10(2)網(wǎng)狀模型網(wǎng)狀模型通過網(wǎng)狀結(jié)構(gòu)表示數(shù)據(jù)間的聯(lián)系,將數(shù)據(jù)組織成有向圖結(jié)構(gòu),用有向圖表示實體類型及實體間的聯(lián)系,用連接指令或指針來確定數(shù)據(jù)間的顯式連接關(guān)系,是具有多對多類型的數(shù)據(jù)組織方式。網(wǎng)狀模型中的節(jié)點代表數(shù)據(jù)記錄,連線描述位于不同節(jié)點的數(shù)據(jù)間的聯(lián)系,數(shù)據(jù)之間沒有明確的從屬關(guān)系,一個節(jié)點可與其他多個節(jié)點建立聯(lián)系,即節(jié)點之間的聯(lián)系是任意的,任何兩個節(jié)點之間都能發(fā)生聯(lián)系,可表示多對多的聯(lián)系。網(wǎng)狀模型結(jié)構(gòu)如圖5-9所示,該圖描述了教研室、教師、課程、學(xué)生、任課與選課之間的關(guān)系。網(wǎng)狀模型的優(yōu)點是記錄之間的聯(lián)系通過指針實現(xiàn),多對多聯(lián)系也容易實現(xiàn),查詢效率高,能明確而方便地表示數(shù)據(jù)間的復(fù)雜關(guān)系。其缺點是編寫應(yīng)用程序的過程比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結(jié)構(gòu)。圖5-9網(wǎng)狀模型結(jié)構(gòu)圖5-8層次模型的樹形結(jié)構(gòu)11(3)關(guān)系模型關(guān)系模型用表格結(jié)構(gòu)表達(dá)實體集,用外鍵表示實體間的聯(lián)系,可以簡單、靈活地表示各種實體及其關(guān)系。以記錄組或數(shù)據(jù)表的形式組織數(shù)據(jù),以便利用各種實體與屬性之間的關(guān)系進(jìn)行存儲和變換,不分層也無指針,是建立空間數(shù)據(jù)和屬性數(shù)據(jù)之間的關(guān)系的一種非常有效的數(shù)據(jù)組織方法。關(guān)系模型實體之間的聯(lián)系如圖5-10所示。關(guān)系模型的優(yōu)點是結(jié)構(gòu)簡單、清晰、靈活,概念(關(guān)系)單一,用戶易懂、易用;滿足所有由布爾邏輯運算和數(shù)學(xué)運算規(guī)則形成的查詢要求;能搜索、組合和比較不同類型的數(shù)據(jù);增加和刪除數(shù)據(jù)非常方便;存取路徑對用戶透明,數(shù)據(jù)獨立性、安全性好,簡化了數(shù)據(jù)庫開發(fā)工作。圖5-10關(guān)系模型實體之間的聯(lián)系12(4)面向?qū)ο竽P兔嫦驅(qū)ο竽P褪怯妹嫦驅(qū)ο蟮挠^點來描述現(xiàn)實世界實體的邏輯組織、對象間限制、聯(lián)系等的模型。面向?qū)ο髷?shù)據(jù)庫模式是類的集合,面向?qū)ο竽P吞峁┝艘环N類層次結(jié)構(gòu)。在面向?qū)ο髷?shù)據(jù)庫模式中,一組類可以形成一個類層次,一個面向?qū)ο蟮臄?shù)據(jù)庫可能有多個類層次。在一個類層次中,一個類繼承其所有超類的全部屬性、方法和消息。5.
2數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)是為滿足數(shù)據(jù)處理的需求而發(fā)展起來的一種較為理想的數(shù)據(jù)處理系統(tǒng),也是一個為實際可運行的存儲、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng),是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體。135.2.1數(shù)據(jù)庫系統(tǒng)的發(fā)展階段數(shù)據(jù)庫系統(tǒng)的發(fā)展主要經(jīng)歷了以下3個階段。①第一代數(shù)據(jù)庫系統(tǒng)是指層次模型數(shù)據(jù)庫系統(tǒng)(基于樹形結(jié)構(gòu))和網(wǎng)狀模型數(shù)據(jù)庫系統(tǒng)(基于有向圖結(jié)構(gòu))。②第二代數(shù)據(jù)庫系統(tǒng)是指支持關(guān)系模型的關(guān)系數(shù)據(jù)庫系統(tǒng)[最先由埃德加·弗蘭克·科德(E.F.Codd)提出關(guān)系模型]。③面向?qū)ο蟮募夹g(shù)與數(shù)據(jù)庫技術(shù)相結(jié)合便產(chǎn)生了第三代數(shù)據(jù)庫系統(tǒng)。5.2.2算法的描述方法通常,一個完整的數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理員、普通用戶和硬件組成。普通用戶與數(shù)據(jù)庫應(yīng)用程序交互,數(shù)據(jù)庫應(yīng)用程序與數(shù)據(jù)庫管理系統(tǒng)交互,數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中的數(shù)據(jù)。一個完整的數(shù)據(jù)庫系統(tǒng)還應(yīng)包括硬件,數(shù)據(jù)庫存放在計算機(jī)的外存中,數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理系統(tǒng)等軟件都需要在計算機(jī)上運行,因此,數(shù)據(jù)庫系統(tǒng)中必然會包含硬件,但本單元不涉及硬件方面的內(nèi)容。數(shù)據(jù)庫系統(tǒng)的組成結(jié)構(gòu)如圖5-11所示。14圖5-11數(shù)據(jù)庫系統(tǒng)的組成結(jié)構(gòu)1.?dāng)?shù)據(jù)庫數(shù)據(jù)庫就是一個長期存儲在計算機(jī)內(nèi)、有組織的、集成的、可共享的、統(tǒng)一管理的相關(guān)數(shù)據(jù)集。數(shù)據(jù)庫是一個有結(jié)構(gòu)的數(shù)據(jù)集,也就是說,數(shù)據(jù)是按一定的數(shù)據(jù)模型來組成的,數(shù)據(jù)模型可用數(shù)據(jù)結(jié)構(gòu)來描述。數(shù)據(jù)模型不同,數(shù)據(jù)的組織結(jié)構(gòu)以及操縱數(shù)據(jù)的方法也就不同。現(xiàn)在的數(shù)據(jù)庫大多數(shù)是以關(guān)系模型來組織數(shù)據(jù)的,可以簡單地把關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)(即關(guān)系)理解為一張二維表。以關(guān)系模型組織起來的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中,不僅存放著各種用戶數(shù)據(jù),如與圖書有關(guān)的數(shù)據(jù)、與借閱者有關(guān)的數(shù)據(jù)、與借閱圖書有關(guān)的數(shù)據(jù)等,而且還存放著與各個表結(jié)構(gòu)定義有關(guān)的數(shù)據(jù),這些數(shù)據(jù)通常稱為元數(shù)據(jù)。數(shù)據(jù)庫具有以下特點。①數(shù)據(jù)庫是一個集成的數(shù)據(jù)集,也就是說,數(shù)據(jù)庫中集中存放著各種各樣的數(shù)據(jù)。②數(shù)據(jù)庫是一個為各種用戶共享的數(shù)據(jù)集,也就是說,數(shù)據(jù)庫中的數(shù)據(jù)可以被不同的用戶使用,每個用戶可以按自己的需求訪問相同的數(shù)據(jù)庫。③數(shù)據(jù)庫是一個統(tǒng)一管理的數(shù)據(jù)集,也就是說,數(shù)據(jù)庫由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理,任何數(shù)據(jù)訪問都是通過數(shù)據(jù)庫管理系統(tǒng)來完成的。④數(shù)據(jù)庫具有冗余度較小、數(shù)據(jù)間聯(lián)系緊密、數(shù)據(jù)獨立性較高等特點。152.?dāng)?shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是一種用來管理數(shù)據(jù)庫的商品化軟件。訪問數(shù)據(jù)庫的請求都是通過數(shù)據(jù)庫管理系統(tǒng)來完成的。數(shù)據(jù)庫管理系統(tǒng)提供了對數(shù)據(jù)庫操作的許多命令,這些命令所組成的語言中常用的就是SQL。數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供訪問數(shù)據(jù)庫的方法,包括數(shù)據(jù)庫的建立、查詢、更新以及各種數(shù)據(jù)控制。常見的數(shù)據(jù)庫管理系統(tǒng)有Microsoft公司開發(fā)的SQLServer、Oracle公司開發(fā)的Oracle、Sybase公司開發(fā)的Sybase、IBM公司開發(fā)的DB2等。說明:“數(shù)據(jù)庫管理系統(tǒng)”這一術(shù)語通常指的是某個特定廠商的特定數(shù)據(jù)庫產(chǎn)品,如MySQL、MicrosoftSQLServer、MicrosoftAccess、Oracle等,但有時人們使用“數(shù)據(jù)庫”這個術(shù)語來代指數(shù)據(jù)庫管理系統(tǒng),這種用法是不恰當(dāng)?shù)摹I踔吝€有人用“數(shù)據(jù)庫”這一術(shù)語來代指數(shù)據(jù)庫系統(tǒng),這種用法就更不恰當(dāng)了。所以對于數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫系統(tǒng)等術(shù)語要明確其含義,合理使用這些術(shù)語。163.?dāng)?shù)據(jù)庫應(yīng)用程序雖然已經(jīng)有了數(shù)據(jù)庫管理系統(tǒng),但是在很多情況下,數(shù)據(jù)庫管理系統(tǒng)無法滿足對數(shù)據(jù)管理的要求。數(shù)據(jù)庫應(yīng)用程序(DatabaseApplication)的使用可以滿足對數(shù)據(jù)管理的更高要求,還可以使數(shù)據(jù)管理過程更加直觀和友好。數(shù)據(jù)庫應(yīng)用程序負(fù)責(zé)與數(shù)據(jù)庫管理系統(tǒng)進(jìn)行通信、訪問和管理數(shù)據(jù)庫管理系統(tǒng)中存儲的數(shù)據(jù),允許用戶插入、修改、刪除數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)庫應(yīng)用程序是利用某種程序語言,為實現(xiàn)某些特定功能而編寫的程序,如查詢程序、報表程序等。這些程序為最終用戶提供便于使用的可視化界面,最終用戶通過界面輸入必要的數(shù)據(jù),應(yīng)用程序接收最終用戶輸入的數(shù)據(jù),對其進(jìn)行加工處理,并將其轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)能夠識別的SQL語句,然后傳給數(shù)據(jù)庫管理系統(tǒng),由數(shù)據(jù)庫管理系統(tǒng)執(zhí)行該語句,并負(fù)責(zé)從數(shù)據(jù)庫若干個數(shù)據(jù)表中找到符合查詢條件的數(shù)據(jù),再將查詢結(jié)果返回給應(yīng)用程序,應(yīng)用程序?qū)⒌玫降慕Y(jié)果顯示出來。由此可見,應(yīng)用程序為最終用戶訪問數(shù)據(jù)庫提供了有效途徑和簡便方法。4.用戶用戶是使用數(shù)據(jù)庫的人員,數(shù)據(jù)庫系統(tǒng)中的用戶一般有以下3類。(1)數(shù)據(jù)庫管理員(2)應(yīng)用程序員(3)最終用戶175.2.3數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1975年,美國國家標(biāo)準(zhǔn)協(xié)會的計算機(jī)與信息處理委員會下屬的標(biāo)準(zhǔn)計劃和需求委員會(ANSI-SPARC)的數(shù)據(jù)庫系統(tǒng)研究組為數(shù)據(jù)庫系統(tǒng)建立了三級模式結(jié)構(gòu),即將數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)劃分為3個層次:外模式、概念模式和內(nèi)模式。數(shù)據(jù)庫系統(tǒng)的層次結(jié)構(gòu)如圖5-12所示。18圖5-12數(shù)據(jù)庫系統(tǒng)的層次結(jié)構(gòu)1.?dāng)?shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的3個層次(1)外模式外模式也稱為用戶模式或子模式,一個數(shù)據(jù)庫可以有多個外模式,但一個應(yīng)用程序只能使用一個外模式。外模式主要描述組成用戶視圖的各個記錄的組成、相互關(guān)系、數(shù)據(jù)項的特征、數(shù)據(jù)的安全性和完整性約束條件等。外模式是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的那部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是應(yīng)用程序與數(shù)據(jù)庫系統(tǒng)之間的接口,是保證數(shù)據(jù)庫安全性的有效措施。用戶可使用數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)和數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)來定義數(shù)據(jù)庫的結(jié)構(gòu)和對數(shù)據(jù)庫進(jìn)行操縱。用戶可以使用數(shù)據(jù)操作語句或應(yīng)用程序去操作數(shù)據(jù)庫中的數(shù)據(jù),對用戶而言,只需要按照所定義的外模式進(jìn)行操作,而無須了解概念模式和內(nèi)模式等的內(nèi)部細(xì)節(jié)。(2)概念模式概念模式也稱為模式、邏輯模式或關(guān)系模式,是所有用戶共享的數(shù)據(jù)庫數(shù)據(jù)視圖,它構(gòu)建了數(shù)據(jù)項值的框架,每個數(shù)據(jù)庫只有一個概念模式。該模式提供了數(shù)據(jù)庫的整體邏輯結(jié)構(gòu)和特征的完整描述,主要涵蓋現(xiàn)實世界實體及其性質(zhì)與聯(lián)系,概念模式的定義包括記錄、數(shù)據(jù)項、數(shù)據(jù)完整性約束條件、安全性約束,以及記錄之間的聯(lián)系等。概念模式位于數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,不涉及數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境,與具體的數(shù)據(jù)值無關(guān),與具體的應(yīng)用程序、開發(fā)工具及程序設(shè)計語言也無關(guān)。19(3)內(nèi)模式內(nèi)模式也稱為存儲模式,一個數(shù)據(jù)庫只有一個內(nèi)模式。內(nèi)模式是數(shù)據(jù)庫內(nèi)部數(shù)據(jù)存儲結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式,它定義了數(shù)據(jù)庫內(nèi)部記錄的類型、存儲域的表示、存儲記錄的物理順序、文件的組織方式以及數(shù)據(jù)控制方面的細(xì)節(jié)等。內(nèi)模式是整個數(shù)據(jù)庫的底層表示,不同于物理層,它假設(shè)外存是無限的線性地址空間。概念模式是數(shù)據(jù)庫的中心與關(guān)鍵。內(nèi)模式、概念模式和外模式之間的關(guān)系如下。①內(nèi)模式依賴于概念模式,獨立于外模式和存儲設(shè)備。②外模式面向具體的應(yīng)用,獨立于內(nèi)模式和存儲設(shè)備。③應(yīng)用程序依賴于外模式,獨立于概念模式和內(nèi)模式。2.?dāng)?shù)據(jù)庫系統(tǒng)的3級抽象數(shù)據(jù)庫系統(tǒng)劃分為3個抽象級:用戶級、概念級、物理級。(1)用戶級數(shù)據(jù)庫用戶級數(shù)據(jù)庫對應(yīng)于外模式,是非常接近用戶的一級數(shù)據(jù)庫,是用戶可以看到和使用的數(shù)據(jù)庫,又稱為用戶視圖。用戶級數(shù)據(jù)庫主要由外部記錄組成,不同的用戶級數(shù)據(jù)庫可以互相重疊,用戶的操作都是針對用戶視圖進(jìn)行的。一個數(shù)據(jù)庫可以有多個不同的用戶級數(shù)據(jù)庫,每個用戶級數(shù)據(jù)庫由數(shù)據(jù)庫某一部分的抽象表示所組成。20(2)概念級數(shù)據(jù)庫概念級數(shù)據(jù)庫對應(yīng)于概念模式,介于用戶級數(shù)據(jù)庫和物理級數(shù)據(jù)庫之間,是所有用戶級數(shù)據(jù)庫的最小并集,是數(shù)據(jù)庫管理員可看到和使用的數(shù)據(jù)庫,又稱為DBA視圖。概念級數(shù)據(jù)庫由概念記錄組成,一個數(shù)據(jù)庫應(yīng)用系統(tǒng)只存在一個DBA視圖,它把數(shù)據(jù)庫作為一個整體的抽象表示。概念級數(shù)據(jù)庫把用戶級數(shù)據(jù)庫有機(jī)地結(jié)合成一個整體,綜合平衡考慮所有用戶要求,實現(xiàn)數(shù)據(jù)的一致性,最大限度降低數(shù)據(jù)冗余,準(zhǔn)確地反映數(shù)據(jù)間的聯(lián)系。(3)物理級數(shù)據(jù)庫物理級數(shù)據(jù)庫對應(yīng)于內(nèi)模式,是數(shù)據(jù)庫的底層表示,它描述數(shù)據(jù)的實際存儲組織,是非常接近物理存儲的一級數(shù)據(jù)庫,又稱為內(nèi)部視圖。物理級數(shù)據(jù)庫由內(nèi)部記錄組成,物理級數(shù)據(jù)庫并不是真正的物理存儲,而是非常接近物理存儲。213.?dāng)?shù)據(jù)庫系統(tǒng)的兩級獨立性數(shù)據(jù)庫系統(tǒng)兩級獨立性是指物理獨立性和邏輯獨立性,數(shù)據(jù)庫系統(tǒng)的3個抽象級通過兩級映射(外模式-模式映射,模式-內(nèi)模式映射)進(jìn)行相互轉(zhuǎn)換,形成統(tǒng)一的整體。(1)物理獨立性物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的。當(dāng)數(shù)據(jù)的物理存儲改變時,應(yīng)用程序不需要改變。物理獨立性存在于概念模式和內(nèi)模式之間的映射轉(zhuǎn)換,用于說明物理組織發(fā)生變化時應(yīng)用程序的獨立程度。(2)邏輯獨立性邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫中的邏輯結(jié)構(gòu)是相互獨立的。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,應(yīng)用程序不需要改變。邏輯獨立性存在于外模式和概念模式之間的映射轉(zhuǎn)換,用于說明概念模式發(fā)生變化時應(yīng)用程序的獨立程度。邏輯獨立性比物理獨立性更難實現(xiàn)。225.2.4幾種新型的數(shù)據(jù)庫系統(tǒng)1.面向?qū)ο髷?shù)據(jù)庫系統(tǒng)2.并行數(shù)據(jù)庫系統(tǒng)3.分布式數(shù)據(jù)庫系統(tǒng)4.多媒體數(shù)據(jù)庫系統(tǒng)5.演繹數(shù)據(jù)庫系統(tǒng)6.主動數(shù)據(jù)庫系統(tǒng)7.專家數(shù)據(jù)庫系統(tǒng)8.空間數(shù)據(jù)庫系統(tǒng)9.工程數(shù)據(jù)庫系統(tǒng)10.?dāng)?shù)據(jù)倉庫235.
3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是一種能夠提供數(shù)據(jù)錄入、修改、查詢的數(shù)據(jù)操作軟件。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行數(shù)據(jù)庫的維護(hù)工作。245.3.1數(shù)據(jù)庫管理系統(tǒng)的功能數(shù)據(jù)庫管理系統(tǒng)用于建立、使用和維護(hù)數(shù)據(jù)庫,它可以支持多個應(yīng)用程序和用戶用不同的方法在同一時刻或不同時刻去建立、修改和詢問數(shù)據(jù)庫。它對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。數(shù)據(jù)庫系統(tǒng)中只有數(shù)據(jù)庫管理系統(tǒng)才能直接訪問數(shù)據(jù)庫,如MySQL就是一種數(shù)據(jù)庫管理系統(tǒng),其主要優(yōu)點是跨平臺、開放源代碼、速度快、成本低,是目前十分流行的開源小型數(shù)據(jù)庫管理系統(tǒng)。1.?dāng)?shù)據(jù)定義數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),DDL主要用于建立、修改數(shù)據(jù)庫的庫結(jié)構(gòu),DDL所描述的庫結(jié)構(gòu)僅僅給出了數(shù)據(jù)庫的框架,通過DDL可以方便地定義數(shù)據(jù)庫中的各種對象。例如,可以使用DDL定義圖書借閱數(shù)據(jù)庫中的圖書信息數(shù)據(jù)表、借閱者數(shù)據(jù)表、圖書借閱數(shù)據(jù)表的表結(jié)構(gòu)。2.?dāng)?shù)據(jù)操縱數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),供用戶實現(xiàn)對數(shù)據(jù)的追加、刪除、更新、查詢等操作。通過DML可以實現(xiàn)數(shù)據(jù)庫中對數(shù)據(jù)進(jìn)行的基本操作,例如,向數(shù)據(jù)表中插入一行數(shù)據(jù)、修改數(shù)據(jù)表中的數(shù)據(jù)、刪除數(shù)據(jù)表中的行、查詢數(shù)據(jù)表中的數(shù)據(jù)等。3.安全控制和并發(fā)控制數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)控制語言(DataControlLanguage,DCL)。通過DCL可以控制什么情況下誰可以執(zhí)行什么樣的數(shù)據(jù)操作。另外,由于數(shù)據(jù)庫是共享的,多個用戶可以同時訪問數(shù)據(jù)庫(并發(fā)操作),這可能會引起訪問沖突,從而導(dǎo)致數(shù)據(jù)的不一致。數(shù)據(jù)庫管理系統(tǒng)還提供并發(fā)控制的功能,以避免并發(fā)操作時可能帶來的數(shù)據(jù)不一致的問題。254.?dāng)?shù)據(jù)庫的運行管理數(shù)據(jù)庫的運行管理包括多用戶環(huán)境下的并發(fā)控制、安全性檢查和存取限制控制、完整性檢查和執(zhí)行、運行日志的組織管理、事務(wù)的管理和自動恢復(fù)(即保證事務(wù)的原子性)等功能,這些功能保證了數(shù)據(jù)庫系統(tǒng)的正常運行。5.?dāng)?shù)據(jù)組織、存儲與管理數(shù)據(jù)庫管理系統(tǒng)要分類組織、存儲和管理各種數(shù)據(jù),包括數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等,需要確定以何種文件結(jié)構(gòu)和存取方式在存儲級上組織這些數(shù)據(jù),如何實現(xiàn)數(shù)據(jù)之間的聯(lián)系。6.?dāng)?shù)據(jù)庫的保護(hù)數(shù)據(jù)庫中的數(shù)據(jù)是信息社會的戰(zhàn)略資源,所以對數(shù)據(jù)的保護(hù)至關(guān)重要。數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫的保護(hù)通過4個方面來實現(xiàn):數(shù)據(jù)庫的恢復(fù)、數(shù)據(jù)庫的并發(fā)控制、數(shù)據(jù)庫的完整性控制、數(shù)據(jù)庫的安全性控制。數(shù)據(jù)庫管理系統(tǒng)的其他保護(hù)功能還有系統(tǒng)緩沖區(qū)的管理、數(shù)據(jù)存儲的某些自適應(yīng)調(diào)節(jié)等。267.?dāng)?shù)據(jù)庫的維護(hù)數(shù)據(jù)庫的維護(hù)包括數(shù)據(jù)庫的數(shù)據(jù)載入、轉(zhuǎn)換、轉(zhuǎn)儲,數(shù)據(jù)庫的重組和重構(gòu),性能監(jiān)控等功能,這些功能分別由各個應(yīng)用程序來完成。8.?dāng)?shù)據(jù)庫事務(wù)管理數(shù)據(jù)庫中的數(shù)據(jù)是可供多個用戶同時使用的共享數(shù)據(jù),為保證數(shù)據(jù)能夠安全、可靠地運行,數(shù)據(jù)庫管理系統(tǒng)提供了事務(wù)管理功能,該功能保證數(shù)據(jù)能夠并發(fā)使用并且不會產(chǎn)生相互干擾的情況,而且在數(shù)據(jù)庫發(fā)生故障時能夠?qū)?shù)據(jù)庫進(jìn)行正確恢復(fù)。9.?dāng)?shù)據(jù)庫備份與恢復(fù)數(shù)據(jù)庫管理系統(tǒng)提供了備份數(shù)據(jù)庫和恢復(fù)數(shù)據(jù)庫的功能。10.傳送數(shù)據(jù)與相互通信數(shù)據(jù)庫管理系統(tǒng)提供負(fù)責(zé)數(shù)據(jù)傳輸?shù)慕涌冢@些接口與操作系統(tǒng)的聯(lián)機(jī)處理、分時系統(tǒng)以及遠(yuǎn)程作業(yè)輸入相關(guān)。網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫系統(tǒng)還應(yīng)該具有數(shù)據(jù)庫管理系統(tǒng)與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信功能以及數(shù)據(jù)庫之間的互操作功能。275.3.2常用的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品介紹目前常用的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品主要是MySQL、SQLServer、Oracle、Sybase、DB2、Access等產(chǎn)品。不同的數(shù)據(jù)庫管理系統(tǒng),有不同的特點,也有相對獨立的應(yīng)用領(lǐng)域和用戶支持。1.MySQLMySQL是一種開源小型關(guān)系數(shù)據(jù)庫管理系統(tǒng),MySQL現(xiàn)隸屬于Oracle公司。MySQL軟件分為社區(qū)版和商業(yè)版,其體積小、速度快、總體擁有成本低,目前被廣泛地應(yīng)用在中小型網(wǎng)站中。2.SQLServerSQLServer是由微軟公司開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng),具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點。SQLServer數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了安全、可靠的存儲功能,使用戶可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。SQLServer的最初版本適用于中小型企業(yè),但是應(yīng)用范圍在不斷擴(kuò)展。3.OracleOracle是Oracle(甲骨文)公司提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng)之一。Oracle作為一個通用的數(shù)據(jù)庫管理系統(tǒng),它具有完整的數(shù)據(jù)管理28理功能;作為一個關(guān)系數(shù)據(jù)庫,它是一款關(guān)系完備的產(chǎn)品;作為分布式數(shù)據(jù)庫,它實現(xiàn)了分布式處理功能。Oracle被認(rèn)為是業(yè)界比較成功的關(guān)系數(shù)據(jù)庫管理系統(tǒng),是一種運行穩(wěn)定、功能齊全、使用方便、可移植性好、高效率、可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫管理系統(tǒng)。對于數(shù)據(jù)量大、事務(wù)處理繁忙、安全性要求高的企業(yè),Oracle是一個比較理想的選擇。隨著Internet的普及,Oracle適時地將自己的產(chǎn)品緊密地和網(wǎng)絡(luò)計算結(jié)合起來,成為在Internet應(yīng)用領(lǐng)域的數(shù)據(jù)庫廠商中的佼佼者。Oracle可以運行在UNIX、Windows等主流操作系統(tǒng)平臺上,支持幾乎所有的工業(yè)標(biāo)準(zhǔn),并獲得了最高級別的ISO標(biāo)準(zhǔn)安全性認(rèn)證。Oracle采用完全開放策略,可以使客戶選擇合適的解決方案,同時對開發(fā)商提供全力支持。4.SybaseSybase是Sybase公司研制的一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),是一種典型的可運行在UNIX或Windows平臺上C/S環(huán)境下的大型數(shù)據(jù)庫管理系統(tǒng)。Sybase提供了一套應(yīng)用程序編程接口,可以與非Sybase數(shù)據(jù)源及服務(wù)器集成,允許在多個數(shù)據(jù)庫之間復(fù)制數(shù)據(jù),適用于創(chuàng)建多層應(yīng)用。295.DB2DB2是IBM公司研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng),主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性,可支持從大型計算機(jī)到單用戶環(huán)境。DB2有很多不同的版本,可以運行在從掌上產(chǎn)品到大型計算機(jī)的不同的終端上。DB2提供了高層次的數(shù)據(jù)利用性、完整性、安全性、可恢復(fù)性,以及從小規(guī)模到大規(guī)模應(yīng)用程序的執(zhí)行能力,支持無關(guān)平臺的基本功能和SQL命令。1968年,IBM公司推出的信息管理系統(tǒng)(InformationManagementSystem,IMS)是層次模型數(shù)據(jù)庫系統(tǒng)的典型代表,是第一個大型的商用數(shù)據(jù)庫管理系統(tǒng)。1970年,IBM公司的研究員首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型,開始了對數(shù)據(jù)庫關(guān)系方法和關(guān)系數(shù)據(jù)理論的研究,為數(shù)據(jù)庫技術(shù)奠定了基礎(chǔ)。IBM公司在關(guān)系數(shù)據(jù)庫理論方面一直走在業(yè)界的前列。DB2于1983年首次發(fā)布,2001年,IBM公司兼并了數(shù)據(jù)庫公司Informix,并將其所擁有的先進(jìn)特性融入DB2中,使DB2的系統(tǒng)性能和功能有了進(jìn)一步提高。6.AccessAccess是微軟公司在1992年推出的一個入門級小型桌面數(shù)據(jù)庫管理系統(tǒng),它具有界面友好、易學(xué)易用、開發(fā)簡單、接口靈活,可以方便地生成各種數(shù)據(jù)對象,利用存儲的數(shù)據(jù)建立窗體和報表等特點。作為Office套件的一部分,Access可以與Office集成,實現(xiàn)無縫連接,是一種典型的桌面數(shù)據(jù)庫管理系統(tǒng)。但其性能和安全性都一般。Access能夠利用Web檢索和發(fā)布數(shù)據(jù),實現(xiàn)與互聯(lián)網(wǎng)的連接,主要適用于中小型企業(yè)應(yīng)用系統(tǒng),或作為C/S系統(tǒng)中的客戶端數(shù)據(jù)庫。305.3.3國產(chǎn)數(shù)據(jù)庫管理系統(tǒng)簡介隨著數(shù)字經(jīng)濟(jì)的發(fā)展,數(shù)據(jù)量爆炸式增長,國產(chǎn)化替代加速,國產(chǎn)數(shù)據(jù)庫迎來巨大機(jī)遇。從國內(nèi)市場競爭格局來看,華為、阿里巴巴、達(dá)夢數(shù)據(jù)庫、人大金倉等國產(chǎn)數(shù)據(jù)庫供應(yīng)商占據(jù)的市場份額越來越大。國產(chǎn)數(shù)據(jù)庫管理系統(tǒng)廠商經(jīng)過多年的技術(shù)研發(fā)和經(jīng)驗積累,經(jīng)歷引進(jìn)技術(shù)、研究、創(chuàng)新再自主創(chuàng)新,實力不斷增強(qiáng),產(chǎn)品應(yīng)用越來越廣泛,專利申請數(shù)量越來越多,國產(chǎn)陣營日益強(qiáng)盛,完全實現(xiàn)國產(chǎn)數(shù)據(jù)庫指日可待。1.華為GaussDB:AI-Native分布式數(shù)據(jù)庫2.華為openGauss:開源關(guān)系數(shù)據(jù)庫3.阿里云PolarDB:關(guān)系型云原生分布式數(shù)據(jù)庫4.螞蟻集團(tuán)OceanBase:原生分布式關(guān)系數(shù)據(jù)庫5.阿里云AnalyticDB:實時分析型數(shù)據(jù)庫316.達(dá)夢數(shù)據(jù)庫DM8:通用關(guān)系數(shù)據(jù)庫7.人大金倉KingbaseES:關(guān)系數(shù)據(jù)庫8.南大通用GBase:數(shù)據(jù)庫產(chǎn)品9.PingCAPTiDB:分布式關(guān)系數(shù)據(jù)庫10.騰訊云TDSQL:分布式數(shù)據(jù)庫5.
4關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是指使用關(guān)系模型來組織和管理數(shù)據(jù)的數(shù)據(jù)庫。325.4.1關(guān)系的基本運算關(guān)系運算是一個數(shù)學(xué)名詞。基本運算有兩類:一類是傳統(tǒng)的集合運算(并、差、交等),另一類是專門的關(guān)系運算(選擇、投影、連接、除法等)。有些查詢需要進(jìn)行幾個基本運算的組合,經(jīng)過若干步驟才能完成。1.傳統(tǒng)的集合運算傳統(tǒng)的集合運算包括并(Union)、差(Difference)、交(Intersection)、笛卡兒積等,均為二目運算。這些針對集合的運算是以元組為運算的基本元素進(jìn)行的,是從行的角度展開的運算。2.專門的關(guān)系運算關(guān)系運算的運算對象是關(guān)系,運算結(jié)果亦為關(guān)系。(1)選擇運算從關(guān)系中找出滿足給定條件的那些元組(行)稱為選擇(Selection)。其中的條件是以邏輯表達(dá)式給出的,值為真的元組將被選取。這種運算是從水平方向抽取元組。(2)投影運算從關(guān)系模式中挑選若干屬性(列)組成新的關(guān)系稱為投影(Projection)。這是從列的角度進(jìn)行的運算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,這是因為取消了某些屬性(列)后,可能出現(xiàn)重復(fù)的行,應(yīng)該取消這些完全相同的行。(3)連接運算連接(Join)運算是從兩個關(guān)系的笛卡兒積中選擇屬性滿足一定條件的元組,將不同的兩個關(guān)系連接成一個新關(guān)系。新關(guān)系中的元組是通過連接原有關(guān)系的元組而得到的。新關(guān)系中屬性的名字采用原有關(guān)系屬性名加上原有關(guān)系名作為前綴,這種命名方法保證了新關(guān)系中屬性名的唯一性,盡管原有不同關(guān)系中的屬性可能是同名的。(4)除法運算在關(guān)系代數(shù)中,除法運算可理解為笛卡兒積的逆運算。335.4.2關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫是一種數(shù)據(jù)庫類型,關(guān)系數(shù)據(jù)庫是指采用了關(guān)系模型來組織數(shù)據(jù)的數(shù)據(jù)庫,其以行和列的形式存儲數(shù)據(jù),以便用戶理解和快速訪問。關(guān)系模型可以簡單理解為二維表格模型,關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束3部分組成。而關(guān)系數(shù)據(jù)庫就是由二維表及其之間的關(guān)系組成的數(shù)據(jù)組織。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)存放在包含一系列行和列的二維表中,一個關(guān)系數(shù)據(jù)庫包含多個二維表。關(guān)系數(shù)據(jù)庫所包含的表之間是有關(guān)聯(lián)的,關(guān)聯(lián)主要由主鍵和外鍵所體現(xiàn)的參照關(guān)系實現(xiàn)。用戶通過查詢來檢索數(shù)據(jù)庫中的數(shù)據(jù),而查詢是一系列用于限定數(shù)據(jù)庫中某些區(qū)域的執(zhí)行代碼。關(guān)系數(shù)據(jù)庫的優(yōu)點如下。①易于維護(hù):都使用表結(jié)構(gòu),格式一致。②使用方便:通用的SQL可實現(xiàn)復(fù)雜查詢。③復(fù)雜操作:支持SQL,可實現(xiàn)一個表及多個表之間非常復(fù)雜的查詢。34關(guān)系數(shù)據(jù)庫的缺點如下。①讀寫性能比較差,尤其是對海量數(shù)據(jù)的讀寫效率。②表的結(jié)構(gòu)固定,靈活度稍欠缺。③難以滿足高并發(fā)讀寫需求,對傳統(tǒng)關(guān)系數(shù)據(jù)庫來說,硬盤I/O是一個很大的瓶頸。傳統(tǒng)關(guān)系數(shù)據(jù)庫旨在處理大量結(jié)構(gòu)化數(shù)據(jù),這使得關(guān)系數(shù)據(jù)庫特別適用于處理結(jié)構(gòu)化的大數(shù)據(jù),因為它們依賴于SQL,并且可以使用數(shù)據(jù)庫管理系統(tǒng)控制數(shù)據(jù)。但是,更大、更復(fù)雜的數(shù)據(jù)集包含的數(shù)據(jù)種類越來越多,意味著數(shù)據(jù)的結(jié)構(gòu)化程度越來越低,且來自新的源,這就需要使用支持處理非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的非關(guān)系數(shù)據(jù)庫(如NoSQL)。355.4.3關(guān)系數(shù)據(jù)庫的相關(guān)概念1.關(guān)系模型關(guān)系模型是一種以二維表的形式表示實體數(shù)據(jù)和實體之間聯(lián)系的數(shù)據(jù)模型,關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一個由行和列組成的二維表格,每個二維表稱為關(guān)系,每個二維表都有一個名字,如“圖書信息”“出版社”等。目前大多數(shù)數(shù)據(jù)庫管理系統(tǒng)所管理的數(shù)據(jù)庫都是關(guān)系數(shù)據(jù)庫,MySQL數(shù)據(jù)庫就是關(guān)系數(shù)據(jù)庫。例如,表5-5所示的“圖書信息”數(shù)據(jù)表中和表5-6所示“出版社信息”數(shù)據(jù)表就是兩張二維表,分別描述“圖書”實體對象和“出版社”實體對象。另外“圖書信息”數(shù)據(jù)表和“出版社信息”數(shù)據(jù)表有一個共同字段,即出版社ID,在“圖書信息”數(shù)據(jù)表中該字段的命名為“出版社”,在“出版社信息”數(shù)據(jù)表中該字段的命名為“出版社ID”,雖然命名有所區(qū)別,但其數(shù)據(jù)類型、長度相同,字段值有對應(yīng)關(guān)系,這兩個數(shù)據(jù)表可以通過該字段建立關(guān)聯(lián)。3637商品編號圖書名稱價格/元出版社ISBN作者12528944PPT設(shè)計從入門到精通7919787115454614張曉景12563157給Python點顏色青少年學(xué)編程59.819787115512321佘友軍12520987樂學(xué)Python編程做個游戲很簡單69.849787302519867王振世12366901教學(xué)設(shè)計、實施的診斷與優(yōu)化48.839787121341427陳承歡12325352Python程序設(shè)計39.629787040493726黃銳軍出版社ID出版社名稱出版社簡稱出版社地址郵政編碼1人民郵電出版社人郵北京市豐臺區(qū)成壽寺路11號1001642高等教育出版社高教北京西城區(qū)德外大街4號1001203電子工業(yè)出版社電子北京市海淀區(qū)萬壽路173信箱1000364清華大學(xué)出版社清華北京市海淀區(qū)清華園街道雙清路清華大學(xué)學(xué)研大廈A座1000845機(jī)械工業(yè)出版社機(jī)工北京市西城區(qū)百萬莊大街22號100037表5-5“圖書信息”數(shù)據(jù)表表5-6“出版社信息”數(shù)據(jù)表2.實體實體是指客觀存在并可相互區(qū)別的事物,可以是人或物,也可以是抽象事件,如“圖書”“出版社”都屬于實體。同一類實體的集合稱為實體集。3.關(guān)系關(guān)系是一種規(guī)范化了的二維表格中行的集合,一個關(guān)系就是一張二維表,表5-5所示數(shù)據(jù)表和表5-6所示數(shù)據(jù)表就是兩個關(guān)系。經(jīng)常將關(guān)系簡稱為表。4.元組二維表中的一行稱為一個元組,元組也稱為記錄。一個二維表由多行組成,表中不允許出現(xiàn)重復(fù)的元組,如表5-5中有5行(不包括第1行),即5條記錄。5.屬性二維表中的一列稱為一個屬性,屬性也稱為字段或數(shù)據(jù)項。如表5-5中有6列,即6個字段,分別為商品編號、圖書名稱、價格/元、出版社、ISBN和作者。屬性值是指屬性的取值,每個屬性的取值范圍稱為值域,簡稱域,如性別的取值是“男”或“女”。6.域域是屬性值的取值范圍。如“性別”的域為“男”“女”,“課程成績”的域可以為“0~100”或者為“A、B、C、D”之類的等級。387.候選關(guān)鍵字候選關(guān)鍵字(CandidateKey)也稱為候選碼,它是能夠唯一確定一個元組的屬性或?qū)傩缘慕M合。一個關(guān)系可能會存在多個候選關(guān)鍵字。如表5-5中“商品編號”和“ISBN”屬性都能唯一地確定表中的每一行,是“圖書信息”表的候選關(guān)鍵字,其他屬性都有可能會出現(xiàn)重復(fù)的值,不能作為該表的候選關(guān)鍵字。表5-6中“出版社ID”“出版社名稱”“出版社簡稱”都可以作為“出版社信息”表的候選關(guān)鍵字。8.主鍵主鍵(PrimaryKey)也稱為主關(guān)鍵字。在一個表中可能存在多個候選關(guān)鍵字,選定其中的一個用來唯一標(biāo)識表中的每一行,將其稱為主關(guān)鍵字或主鍵。如表5-5中有2個候選關(guān)鍵字“商品編號”和“ISBN”,可以選擇“商品編號”或者“ISBN”作為主鍵,由于這里的圖書是待選購的商品,因此選擇“商品編號”作為主鍵更合理。表5-6中有3個候選關(guān)鍵字“出版社ID”“出版社簡稱”“出版社名稱”,這3個候選關(guān)鍵字都可以作為主鍵,如果選擇“出版社ID”作為唯一標(biāo)識表中每一行的屬性,那么“出版社ID”就是“出版社信息”表的主鍵,如果選擇“出版社名稱”作為唯一標(biāo)識表中每一行的屬性,那么“出版社名稱”就是“出版社信息”表的主鍵,以此類推。一般情況下,應(yīng)選擇屬性值簡單、長度較短、便于比較的屬性作為表的主鍵。對于“出版社信息”表中的3個候選關(guān)鍵字,從屬性值的長度來看,“出版社ID”和“出版社簡稱”兩個屬性的值都比較短,從這個角度來看,這兩個候選關(guān)鍵字都可以作為主鍵,但是由于“出版社ID”是純數(shù)字,比較效率高,因此選擇“出版社ID”作為“出版社信息”表的主鍵更合適。399.外鍵外鍵(ForeignKey)也稱為外關(guān)鍵字或外碼。外鍵是指表中的某個屬性(或?qū)傩越M合),它雖然不是本表的主鍵或只是主鍵的一部分,卻是另一個表的主鍵,該屬性稱為本表的外鍵。如“圖書信息”表和“出版社信息”表有一個相同的屬性,即“出版社ID”,對“出版社信息”表來說這個屬性是主鍵,而在“圖書信息”表中這個屬性不是主鍵,所以“圖書信息”表中的“出版社ID”是一個外鍵。10.聯(lián)系聯(lián)系是指客觀世界中實體與實體之間的關(guān)系,聯(lián)系的類型有3種:一對一(1∶1)、一對多(1∶N)、多對多(M∶N),關(guān)系數(shù)據(jù)庫中普遍的聯(lián)系是一對多(1∶N)。E-R圖中用菱形框表示實體間的聯(lián)系。如學(xué)校與校長為一對一的聯(lián)系;班級與學(xué)生為一對多的聯(lián)系,一個班級有多個學(xué)生,每個學(xué)生只屬于一個班級;學(xué)生與課程之間為多對多的聯(lián)系,一個學(xué)生可以選擇多門課程,一門課程可以有多個學(xué)生選擇,學(xué)生與課程之間的E-R圖如圖5-13所示。11.主表與從表主表和從表是以外鍵相關(guān)聯(lián)的兩個表。以外鍵作主鍵的表稱為主表,也稱為父表,外鍵所在的表稱為從表,也稱為子表或相關(guān)表。如“出版社信息”和“圖書信息”這兩個以外鍵出版社ID相關(guān)聯(lián)的表,“出版社信息”表稱為主表,“圖書信息”表稱為從表。4041圖5-13學(xué)生與課程之間的E-R圖5.4.4關(guān)系模型的規(guī)范化與范式任何一個數(shù)據(jù)庫應(yīng)用系統(tǒng)都要處理大量的數(shù)據(jù),如何以最優(yōu)方式組織這些數(shù)據(jù),形成以規(guī)范化形式存儲的數(shù)據(jù)庫,是數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)中的一個重要問題。由于應(yīng)用需要,一個已投入運行的數(shù)據(jù)庫,在實際應(yīng)用中不斷地變化著。當(dāng)對原有數(shù)據(jù)庫進(jìn)行修改、插入、刪除時,應(yīng)盡量減少對原有數(shù)據(jù)結(jié)構(gòu)的修改,從而減少對應(yīng)用程序的影響。所以設(shè)計數(shù)據(jù)存儲結(jié)構(gòu)時要用規(guī)范化的方法設(shè)計,以提高數(shù)據(jù)的完整性、一致性、可用性。規(guī)范化理論是設(shè)計關(guān)系數(shù)據(jù)庫的重要理論基礎(chǔ),在此簡單介紹一下關(guān)系模型的規(guī)范化與范式(NormalForm),范式表示的是關(guān)系模型的規(guī)范化程度。1.關(guān)系模型的規(guī)范化把低一級的關(guān)系模型分解為高一級關(guān)系模型的過程,稱為關(guān)系模型的規(guī)范化。當(dāng)一個關(guān)系中的所有字段都是不可分割的數(shù)據(jù)項時,則稱該關(guān)系是規(guī)范的。如果表中有的屬性是復(fù)合屬性,由多個數(shù)據(jù)項組合而成,則可以進(jìn)一步分割,或者表中包含多值數(shù)據(jù)項時,則該表稱為不規(guī)范的表。數(shù)據(jù)規(guī)范化的目的是減少數(shù)據(jù)冗余,消除數(shù)據(jù)存儲異常,以保證數(shù)據(jù)的完整性,提高存儲效率。422.關(guān)系模型的范式關(guān)系模型滿足的確定約束條件稱為范式,用NF表示,根據(jù)滿足約束條件的級別不同,范式由低到高分為1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(BC范式)、4NF(第四范式)等,不同的級別范式,其性質(zhì)不同。(1)1NF1NF是最低的規(guī)范化要求,如果關(guān)系R中屬性的值域都是簡單域,其元素(即屬性)不可再分解,是屬性項而不是屬性組,且不存在重復(fù)的元組、屬性,那么關(guān)系模型R是1NF的。這一限制是關(guān)系的基本性質(zhì),所以任何關(guān)系都必須滿足1NF。1NF是在實際數(shù)據(jù)庫設(shè)計中必須先達(dá)到的,通常稱為數(shù)據(jù)元素的結(jié)構(gòu)化。表5-7所示的“圖書信息”表滿足上述條件,屬于1NF。43商品編號圖書名稱價格/元作者ISBN出版社出版社簡稱郵政編碼12528944PPT設(shè)計從入門到精通79張曉景9787115454614人民郵電出版社人郵10016412563157給Python點顏色青少年學(xué)編程59.8佘友軍9787115512321人民郵電出版社人郵10016412520987樂學(xué)Python編程做個游戲很簡單69.8王振世9787302519867清華大學(xué)出版社清華10008412366901教學(xué)設(shè)計、實施的診斷與優(yōu)化48.8陳承歡9787121341427電子工業(yè)出版社電子10003612325352Python程序設(shè)計39.6黃銳軍9787040493726高等教育出版社高教100120表5-7“圖書信息”表及其存儲的部分?jǐn)?shù)據(jù)滿足1NF的關(guān)系模型可能會有許多重復(fù)值,增加了修改其數(shù)據(jù)時引起疏漏的可能性。很顯然,上述圖書關(guān)系中,同一個出版社出版的圖書,其出版社名稱、出版社簡稱和郵政編碼是相同的,這樣就會出現(xiàn)許多重復(fù)的數(shù)據(jù)。如果某一個出版社的“郵政編碼”改變了,那么該出版社所出版的所有圖書的對應(yīng)記錄的“郵政編碼”都要進(jìn)行更改。滿足1NF的要求是對關(guān)系數(shù)據(jù)庫的基本要求,它確保關(guān)系中的每個屬性都是單值屬性,即不是復(fù)合屬性,但可能存在部分函數(shù)依賴,不能排除數(shù)據(jù)冗余和潛在的數(shù)據(jù)更新異常問題。所謂函數(shù)依賴,是指一個數(shù)據(jù)表中,屬性B的取值依賴于屬性A的取值,則屬性B函數(shù)依賴于屬性A,如“出版社簡稱”函數(shù)依賴于“出版社名稱”。為了消除這種數(shù)據(jù)冗余、避免潛在的數(shù)據(jù)更新異常問題,消除函數(shù)依賴,我們需要更加規(guī)范的2NF。(2)2NF一個關(guān)系R滿足1NF,且所有的非主屬性都完全地依賴于主鍵,則這種關(guān)系屬于2NF。對于滿足2NF的關(guān)系,如果給定一個主鍵的值,則可以在這個數(shù)據(jù)表中唯一確定一條記錄。滿足2NF的關(guān)系消除了非主屬性對主鍵的部分函數(shù)依賴,但可能存在傳遞函數(shù)依賴,也可能存在數(shù)據(jù)冗余和潛在的數(shù)據(jù)更新異常問題。所謂傳遞依賴,是指對于一個數(shù)據(jù)表中的A、B、C這3個屬性,如果C函數(shù)依賴于B,B函數(shù)依賴于A,那么C函數(shù)也依賴于A,稱C傳遞依賴于A。在表5-7中,存在“出版社名稱”函數(shù)依賴于“ISBN”,“郵政編碼”函數(shù)依賴于“出版社名稱”這樣的傳遞函數(shù)依賴,也就是說“ISBN”不能直接決定非主屬性“郵政編碼”。要使關(guān)系模型中不存在傳遞依賴,可以將該關(guān)系模型分解為3NF。44(3)3NF一個關(guān)系R滿足1NF和2NF,且每個非主屬性彼此獨立,不傳遞依賴于任何主鍵,則這種關(guān)系屬于3NF。從2NF中消除傳遞依賴,便是3NF。將表5-7分解為兩個表,分別為表5-8所示“圖書信息”表和表5-9所示“出版社”表,分解后的兩個表都符合3NF。45商品編號圖書名稱價格/元作者ISBN出版社12528944PPT設(shè)計從入門到精通79張曉景9787115454614人民郵電出版社12563157給Python點顏色青少年學(xué)編程59.8佘友軍9787115512321人民郵電出版社12520987樂學(xué)Python編程做個游戲很簡單69.8王振世9787302519867清華大學(xué)出版社12366901教學(xué)設(shè)計、實施的診斷與優(yōu)化48.8陳承歡9787121341427電子工業(yè)出版社12325352Python程序設(shè)計39.6黃銳軍9787040493726高等教育出版社表5-8“圖書信息”表表5-9“出版社”表出版社名稱出版社簡稱郵政編碼人民郵電出版社人郵100164人民郵電出版社人郵100164清華大學(xué)出版社清華100084電子工業(yè)出版社電子100036高等教育出版社高教1001203NF有效地減少了數(shù)據(jù)的冗余,節(jié)約了存儲空間,提高了數(shù)據(jù)組織的邏輯性、完整性、一致性和安全性,提高了訪問及修改的效率。但是對于比較復(fù)雜的查詢,多個數(shù)據(jù)表之間存在關(guān)聯(lián),查詢時要進(jìn)行連接運算,響應(yīng)速度較慢,這種情況下為了提高數(shù)據(jù)的查詢速度,允許保留一定的數(shù)據(jù)冗余,可以不滿足3NF的要求,設(shè)計成滿足2NF也是可行的。由前述可知進(jìn)行規(guī)范化數(shù)據(jù)庫設(shè)計時應(yīng)遵循規(guī)范化理論,規(guī)范化程度過低,可能會存在潛在的插入/刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題,解決的方法就是對關(guān)系模型進(jìn)行分解或合并,即規(guī)范化,將其轉(zhuǎn)換成高級范式。但并不是規(guī)范化程度越高越好,當(dāng)一個應(yīng)用的查詢涉及多個關(guān)系表的屬性時,系統(tǒng)必須進(jìn)行連接運算,連接運算要耗費時間和空間。所以一般情況下,數(shù)據(jù)模型符合3NF就能滿足需求了,規(guī)范化更高的BCNF、4NF、5NF一般用得較少,本單元不予介紹,請參考相關(guān)書籍。3.反規(guī)范化數(shù)據(jù)庫中的數(shù)據(jù)規(guī)范化的優(yōu)點是減少了數(shù)據(jù)冗余,節(jié)約了存儲空間,相應(yīng)邏輯和物理的I/O次數(shù)減少,同時加快了增、刪、改的速度,但是對完全規(guī)范的數(shù)據(jù)庫進(jìn)行查詢,通常需要更多的連接操作,從而影響查詢速度。因此,有時為了提高某些查詢或應(yīng)用的性能會破壞規(guī)范規(guī)則,即反規(guī)范化(非規(guī)范化處理)。常見的反規(guī)范化技術(shù)包括增加冗余列、增加派生列、重新組表、分割表等。465.
5結(jié)構(gòu)查詢語言結(jié)構(gòu)查詢語言(SQL)是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng),同時其小寫形式是數(shù)據(jù)庫腳本文件的擴(kuò)展名。475.4.1數(shù)據(jù)表的概念一個關(guān)系數(shù)據(jù)庫由多個數(shù)據(jù)表(Table)組成,數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫的基本存儲結(jié)構(gòu);數(shù)據(jù)表是二維的,由行和列組成;數(shù)據(jù)表的行(Row)是橫排數(shù)據(jù),也被稱作記錄(Record);數(shù)據(jù)表的列(Column)是縱列數(shù)據(jù),也被稱作字段(Field);數(shù)據(jù)表和數(shù)據(jù)表之間存在關(guān)聯(lián)關(guān)系。在關(guān)系數(shù)據(jù)庫中,對數(shù)據(jù)表有一定的要求和限制,即數(shù)據(jù)表必須滿足以下要求。①每張數(shù)據(jù)表主題明確,只包含與主題相關(guān)的字段。②數(shù)據(jù)表中的每個字段是不可再分的基本數(shù)據(jù)項。一個關(guān)系數(shù)據(jù)庫由多個數(shù)據(jù)表(Table)組成,數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫的基本存儲結(jié)構(gòu);數(shù)據(jù)表是二維的,由行和列組成;數(shù)據(jù)表的行(Row)是橫排數(shù)據(jù),也被稱作記錄(Record);數(shù)據(jù)表的列(Column)是縱列數(shù)據(jù),也被稱作字段(Field);數(shù)據(jù)表和數(shù)據(jù)表之間存在關(guān)聯(lián)關(guān)系。在關(guān)系數(shù)據(jù)庫中,對數(shù)據(jù)表有一定的要求和限制,即數(shù)據(jù)表必須滿足以下要求。①每張數(shù)據(jù)表主題明確,只包含與主題相關(guān)的字段。②數(shù)據(jù)表中的每個字段是不可再分的基本數(shù)據(jù)項。③數(shù)據(jù)表中同一列的數(shù)據(jù)類型必須相同,即同一字段的數(shù)據(jù)具有同一數(shù)據(jù)類型,也就是說,數(shù)據(jù)表中任意字段的取值范圍應(yīng)屬于相同的域。④一張數(shù)據(jù)表中不允許有相同的字段名,即在定義表結(jié)構(gòu)時,一張數(shù)據(jù)表中不能出現(xiàn)重復(fù)的字段名。這是因為系統(tǒng)中的字段名是用來標(biāo)識數(shù)據(jù)列的,如果字段名重復(fù),則會產(chǎn)生列標(biāo)識混亂。⑤一張數(shù)據(jù)表中不允許有完全相同的2條記錄。⑥數(shù)據(jù)表中一般不包括可以從表中數(shù)據(jù)項計算出來的字段。⑦數(shù)據(jù)表中行、列的次序可以交換,即數(shù)據(jù)表中字段和記錄的順序無關(guān)緊要,任意交換兩行或兩列的位置并不影響數(shù)據(jù)的實際含義。在實際使用中,可以按各種排列要求對記錄的次序重新排列。485.5.2結(jié)構(gòu)查詢語言的概念SQL是高級的非過程化編程語言,它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式。關(guān)系數(shù)據(jù)庫都是以SQL為基礎(chǔ)的,SQL是在關(guān)系數(shù)據(jù)庫上執(zhí)行數(shù)據(jù)操作、檢索及維護(hù)所使用的標(biāo)準(zhǔn)語言,SQL由數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言等組成。495.5.3查詢語言的特點SQL有以下特點。(1)功能的一體化(2)高度非過程化(3)以同一種語法結(jié)構(gòu)提供兩種使用方式(4)面向集合的操作方式(5)允許對表和視圖進(jìn)行操作(6)語言簡潔,易學(xué)、易用5.5.4結(jié)構(gòu)查詢語言的類型與功能1.結(jié)構(gòu)查詢語言的類型SQL可分為數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)查詢語言、數(shù)據(jù)控制語言、事務(wù)控制語言。SQL的類型、主要功能及常用謂詞如表5-10所示。50SQL類型主要功能常用謂詞數(shù)據(jù)定義語言創(chuàng)建、修改和刪除數(shù)據(jù)庫及其對象,包括數(shù)據(jù)庫、數(shù)據(jù)表、視圖、索引、函數(shù)、存儲過程、觸發(fā)器等,定義數(shù)據(jù)的完整性、安全控制等約束Create(創(chuàng)建)、Alter(修改)、Drop(刪除)、Truncate(刪除表數(shù)據(jù))、Rename(重命名)數(shù)據(jù)操縱語言插入、修改和刪除數(shù)據(jù)表中的數(shù)據(jù)Insert(插入)、Update(修改)、Delete(刪除)數(shù)據(jù)查詢語言從數(shù)據(jù)表中獲得數(shù)據(jù),數(shù)據(jù)查詢是使用較多的操作Select(查詢)數(shù)據(jù)控制語言對數(shù)據(jù)庫進(jìn)行統(tǒng)一的控制、管理,設(shè)置或更改數(shù)據(jù)庫用戶和角色權(quán)限,對基本表和視圖進(jìn)行授權(quán)Grant(授權(quán))、Revoke(撤銷授權(quán))、Deny(禁止用戶或角色取得某個權(quán)限)事務(wù)控制語言控制數(shù)據(jù)庫的訪問,維護(hù)數(shù)據(jù)一致性Commit(提交)、Rollback(回滾)、Savepoint(設(shè)置保存點)、SetTransaction(改變事務(wù)選項)表5-10SQL的類型、主要功能及常用謂詞2.Select語句的語法格式及功能說明SQL具有強(qiáng)大的數(shù)據(jù)查詢功能,SQL從數(shù)據(jù)表中查詢數(shù)據(jù)的基本語句為Select語句,其功能是實現(xiàn)數(shù)據(jù)的篩選、投影和連接操作,并能夠完成篩選字段重命名、多數(shù)據(jù)源數(shù)據(jù)組合、分類匯總、排序等操作。(1)Select語句的一般格式Select語句的一般格式如下。51Select謂詞|<字段名稱或表達(dá)式列表>Into<新表名>From<數(shù)據(jù)表名稱或視圖名稱>[Where<條件表達(dá)式>][GroupBy<分組的字段名稱或表達(dá)式>][Having<過濾條件>][OrderBy<排序的字段名稱或表達(dá)式>Asc|Desc][數(shù)據(jù)表的別名](2)Select語句的功能根據(jù)Where子句的條件表達(dá)式,從From子句指定的數(shù)據(jù)表中找出滿足條件的記錄,再按Select子句選出記錄中的字段值,把查詢結(jié)果以表格的形式返回。ect、Into、From、Where、GroupBy、Having和OrderBy等。其中Select子句和From子句是必需的,其余的子句均可省略。①Select后面的字段名稱或表達(dá)式列表表示需要查詢的字段名稱或表達(dá)式。謂詞包括All、Distinct、Top和Distinctrow。謂詞用來限定返回記錄的數(shù)量,如果沒有指定謂詞,則默認(rèn)值為All,All允許省略不寫。②Into子句用于標(biāo)識插入數(shù)據(jù)的數(shù)據(jù)表名稱。③From子句用于標(biāo)識從中檢索數(shù)據(jù)的一個或多個數(shù)據(jù)表或視圖。④Where子句用于設(shè)定查詢條件以返回需要的記錄,如果有Where子句,就按照對應(yīng)的“條件表達(dá)式”規(guī)定的條件進(jìn)行查詢。如果沒有Where子句,就查詢所有記錄。⑤GroupBy子句用于將查詢結(jié)果按指定的一個字段或多個字段的值進(jìn)行分組,分組字段或表達(dá)式的值相等的被分為一組。通常GroupBy子句與Count()、Sum()等聚合函數(shù)配合使用。⑥Having子句與GroupBy子句搭配使用,用于以GroupBy子句分組的結(jié)果進(jìn)一步限定搜索條件,滿足該篩選條件的數(shù)據(jù)才能被輸出。⑦OrderBy子句用于將查詢結(jié)果按指定的字段進(jìn)行排序。排序包括升序和降序,其中Asc表示記錄按升序排列,Desc表示記錄按降序排列,默認(rèn)狀態(tài)下,記錄按升序排列。⑧數(shù)據(jù)表的別名用于代替數(shù)據(jù)表的原名稱。523.Insert語句在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表的結(jié)構(gòu)后,可以向該數(shù)據(jù)表中添加記錄。使用SQL中的Insert語句也可以向數(shù)據(jù)表中追加新的數(shù)據(jù)記錄,每次只能添加一條記錄。Insert語句的格式如下。①完全添加。53InsertInto表名Values(第1個字段值,第2個字段值,…,最后一個字段值)使用這種格式向數(shù)據(jù)表中添加新記錄時,在關(guān)鍵字InsertInto后面輸入要添加的數(shù)據(jù)表名稱,然后在括號中列出將要添加新值的字段的名稱,最后,在關(guān)鍵字Values后面括號中按照前面輸入字段的順序?qū)?yīng)地輸入所要添加的記錄值。其中,Values后面括號中的字段值必須與數(shù)據(jù)表中對應(yīng)字段所規(guī)定的字段類型相符,如果只是對部分字段賦值,可以用空值NULL替代不需要賦值的字段,否則會出現(xiàn)錯誤。②部分添加。如果只需要向數(shù)據(jù)表中插入部分字段的值,可以將Insert語句寫成以下格式。InsertInto表名(字段1,字段2,…,字段n)Values(第1個字段值,第2個字段值,…,第n個字段值)4.Update語句SQL中的Update語句提供了對已存在的數(shù)據(jù)表中記錄的字段值進(jìn)行修改的功能。Update語句的格式如下。54Update數(shù)據(jù)表名Set字段1=字段值1,字段2=字段值2,…,字段n=字段值n[Where<條件>]其含義是刪除數(shù)據(jù)表中符合Where條件的記錄,Where<條件>是可選項,如果沒有Where子句,則會刪除數(shù)據(jù)表中的所有記錄。刪除操作是破壞性操作,應(yīng)十分慎重。其含義表示更新數(shù)據(jù)表中符合Where條件的字段或字段集合的值,其中Where<條件>是可選項。5.Delete語句SQL使用Delete語句將記錄從數(shù)據(jù)表中刪除。Delete語句的格式如下。DeleteFrom數(shù)據(jù)表名[Where<條件>]5.
6非關(guān)系數(shù)據(jù)庫隨著Web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在處理Web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的社交網(wǎng)絡(luò)服務(wù)(SocialNetworkService,SNS)類型的Web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,出現(xiàn)了很多難以解決的問題,而非關(guān)系數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。非關(guān)系數(shù)據(jù)庫的誕生就是為了應(yīng)對大規(guī)模數(shù)據(jù)集、多重數(shù)據(jù)種類帶來的挑戰(zhàn),特別是大數(shù)據(jù)應(yīng)用難題。非關(guān)系數(shù)據(jù)庫在特定的場景下可以發(fā)揮出難以想象的高效率和高性能,它是對傳統(tǒng)關(guān)系數(shù)據(jù)庫的一個有效的補(bǔ)充。NoSQL(NotOnlySQL)意即“不僅僅是SQL”,泛指非關(guān)系數(shù)據(jù)庫。非關(guān)系數(shù)據(jù)庫嚴(yán)格意義上不是一種數(shù)據(jù)庫,而是一種數(shù)據(jù)結(jié)構(gòu)化存儲方法的集合,可以是文檔或者鍵值對等。555.6.1非關(guān)系數(shù)據(jù)庫的優(yōu)缺點非關(guān)系數(shù)據(jù)庫的優(yōu)點如下。①格式靈活:存儲數(shù)據(jù)的格式可以是(key,value)形式、文檔形式、圖片形式等,使用靈活,應(yīng)用場景廣泛,而關(guān)系數(shù)據(jù)庫則只支持基礎(chǔ)類型。②速度快:非關(guān)系數(shù)據(jù)庫可以使用硬盤或者RAM作為載體,而關(guān)系數(shù)據(jù)庫只能使用硬盤作為載體。③低成本:非關(guān)系數(shù)據(jù)庫部署簡單,基本都是開源軟件。④高擴(kuò)展性。非關(guān)系數(shù)據(jù)庫的缺點如下。①不提供SQL支持,學(xué)習(xí)和使用成本較高。②數(shù)據(jù)結(jié)構(gòu)相對復(fù)雜,復(fù)雜查詢能力稍欠缺。③無事務(wù)處理機(jī)制。565.6.2非關(guān)系數(shù)據(jù)庫的類型以下是幾種常見的非關(guān)系數(shù)據(jù)庫類型。1.鍵值數(shù)據(jù)庫鍵值(Key-Value)數(shù)據(jù)庫主要使用一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù)。可以通過Key來添加、查詢或者刪除數(shù)據(jù)庫,使用Key訪問,會獲得很高的性能及擴(kuò)展性。Key-Value模型的優(yōu)勢在于簡單、易部署、高并發(fā)。2.列式數(shù)據(jù)庫列式(Column-Oriented)數(shù)據(jù)庫將數(shù)據(jù)存儲在列族中,一個列族存儲是經(jīng)常被一起查詢的相關(guān)數(shù)據(jù),例如,我們經(jīng)常會查詢某個人的姓名和年齡,而不是薪資。這種情況下姓名和年齡會被放到一個列族中,薪資會被放到另一個列族中。3.文檔數(shù)據(jù)庫文檔(Document-Oriented)數(shù)據(jù)庫會將數(shù)據(jù)以文檔的形式存儲。每個文檔都是自包含的數(shù)據(jù)單元,是一系列數(shù)據(jù)項的集合。每個數(shù)據(jù)項都有一個名詞與對應(yīng)值,值既可以是簡單的數(shù)據(jù)類型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類型,如有序列表和關(guān)聯(lián)對象。4.圖形數(shù)據(jù)庫圖形數(shù)據(jù)庫允許將數(shù)據(jù)以圖的方式存儲。實體作為頂點,而實體之間的關(guān)系則作為邊。典型代表產(chǎn)品有Neo4J、InforGrid。575.
7數(shù)據(jù)庫設(shè)計基礎(chǔ)數(shù)據(jù)庫設(shè)計一般應(yīng)包括數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計和行為設(shè)計兩部分內(nèi)容。數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計是指系統(tǒng)整體邏輯模式與子模式的設(shè)計,是對數(shù)據(jù)的分析設(shè)計;數(shù)據(jù)庫的行為設(shè)計是指施加在數(shù)據(jù)庫上的動態(tài)操作的設(shè)計,是對應(yīng)用系統(tǒng)功能的分析設(shè)計。585.7.1數(shù)據(jù)庫設(shè)計的基本原則設(shè)計數(shù)據(jù)庫時要綜合考慮多個因素,權(quán)衡各自利弊確定數(shù)據(jù)表的結(jié)構(gòu),基本原則有以下幾條。①把具有同一個主題的數(shù)據(jù)存儲在一個數(shù)據(jù)表中,也就是“一表一用”的設(shè)計原則。②盡量消除包含在數(shù)據(jù)表中的冗余數(shù)據(jù),但不是必須消除所有的冗余數(shù)據(jù),有時為了提高訪問數(shù)據(jù)庫的速度,可以保留必要的冗余,減少數(shù)據(jù)表之間的連接操作,提高效率。③一般要求數(shù)據(jù)庫設(shè)計達(dá)到3NF,因為3NF的關(guān)系模式中不存在非主屬性對主關(guān)鍵字的不完全函數(shù)依賴和傳遞函數(shù)依賴關(guān)系,最大限度地消除了數(shù)據(jù)冗余、修改異常、插入異常和刪除異常,具有較好的性能,基本滿足關(guān)系規(guī)范化的要求。在數(shù)據(jù)庫設(shè)計時,如果片面地提高關(guān)系的范式等級,并不一定能夠產(chǎn)生合理的數(shù)據(jù)庫設(shè)計方案,原因是范式的等級越高,存儲的數(shù)據(jù)就需要被分解為更多的數(shù)據(jù)表,訪問數(shù)據(jù)表時總是涉及多表操作,會降低訪問數(shù)據(jù)庫的速度。從實用角度來看,大多數(shù)情況下達(dá)到3NF比較恰當(dāng)。④在關(guān)系數(shù)據(jù)庫中,各個數(shù)據(jù)表之間的關(guān)系只能為一對一和一對多的關(guān)系,對于多對多的關(guān)系必須將其轉(zhuǎn)換為一對多的關(guān)系來處理。⑤設(shè)計數(shù)據(jù)表的結(jié)構(gòu)時,應(yīng)考慮表結(jié)構(gòu)在未來可能發(fā)生的變化,保證表結(jié)構(gòu)的動態(tài)適應(yīng)性。595.7.2數(shù)據(jù)庫設(shè)計的基本步驟在確定了數(shù)據(jù)庫設(shè)計的策略以后,就需要確定相應(yīng)的設(shè)計方法和步驟。多年來,人們提出了多種數(shù)據(jù)庫設(shè)計方法、設(shè)計準(zhǔn)則和規(guī)范。考慮數(shù)據(jù)庫和應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計分為如下6個基本步驟。1.用戶需求分析2.概念結(jié)構(gòu)設(shè)計3.邏輯結(jié)構(gòu)設(shè)計4.物理結(jié)構(gòu)設(shè)計5.?dāng)?shù)據(jù)庫實施6.?dāng)?shù)據(jù)庫運行和維護(hù)操作訓(xùn)練60【操作訓(xùn)練5-1】從數(shù)據(jù)表中獲取指定的數(shù)據(jù)【操作訓(xùn)練5-2】設(shè)計人力資源管理系統(tǒng)的數(shù)據(jù)庫61【操作訓(xùn)練5-1】從數(shù)據(jù)表中獲取指定的數(shù)據(jù)Employee數(shù)據(jù)表包含所有員工信息,每個員工有其對應(yīng)的Id、Name、Salary、DepartmentId,Employee數(shù)據(jù)表的字段名與字段值如圖5-14所示。圖5-14Employee數(shù)據(jù)表的字段名與字段值Department數(shù)據(jù)表包含公司所有部門的信息,Department數(shù)據(jù)表的字段名與字段值如圖5-15所示。圖5-15Department數(shù)據(jù)表的字段名與字段值62找出每個部門工資最高的員工的過程如下。(1)求出每個部門對應(yīng)的最高工資和部門編號編寫SQL語句如下。(2)內(nèi)連接兩表并進(jìn)行篩選編寫SQL語句如下。Selectmax(Salary),DepartmentIdFromEmployeeGroupByDepartmentIdSelectd.NameDepartment,e.NameEmployee,e.SalarySalaryFromEmployeee,DepartmentdWheree.DepartmentId=d.IdAnd(e.Salary,e.DepartmentId)In(Selectmax(Salary),DepartmentIdFromEmployeeGroupByDepartmentId);63【操作訓(xùn)練4-2】計算并輸出購買商品的實付總額1.創(chuàng)建PyCharm項目Unit04成功啟動PyCharm后,在其主窗口選擇“文件”菜單,在彈出的下拉菜單中選擇“新建項目”選項,打開“新建項目”對話框,在該對話框的“位置”文本框中輸入“D:\PyCharmProject\Unit04”,在“新建項目”對話框中單擊“創(chuàng)建”按鈕,完成PyCharm項目Unit04的創(chuàng)建。2.創(chuàng)建Python程序文件t4-1.py在PyCharm主窗口右鍵單擊已建好的PyCharm項目“Unit04”,在彈出的快捷菜單中選擇“新建”→“Python文件”命令。在打開的“新建Python文件”對話框中輸入Python文件名“t4-1”,然后雙擊“Python文件”選項,完成Python程序文件的新建任務(wù)。同時,PyCharm主窗口顯示程序文件“t4-1.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動添加了模板內(nèi)容。643.編寫Python程序代碼在新建文件“t4-1.py”的代碼編輯窗口輸入程序代碼,代碼如下。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 星球知識社區(qū)運營與用戶權(quán)益保障合伙合同
- 跨國投資公司海外分公司設(shè)立及投資管理合同
- 2025年中國半導(dǎo)體晶圓代工行業(yè)市場規(guī)模調(diào)研及投資前景研究分析報告
- 2025年中國辦公物業(yè)管理行業(yè)市場前景預(yù)測及投資價值評估分析報告
- 綠色快遞網(wǎng)點加盟環(huán)保合作協(xié)議
- 生態(tài)經(jīng)濟(jì)適用房回購權(quán)補(bǔ)償協(xié)議
- 燃?xì)夤艿朗┕づc安全性能檢測服務(wù)合同
- 淘寶店鋪商品推廣策略分析與運營提升協(xié)議
- 抖音火花MCN機(jī)構(gòu)與直播平臺藝人分成合作協(xié)議
- 新能源汽車電池更換及原廠配件保障服務(wù)協(xié)議
- 版式設(shè)計課件3,網(wǎng)格系統(tǒng)全攻略
- 船舶防臺風(fēng)安全安全知識
- 汽機(jī)發(fā)電量計算
- GB∕T 1457-2022 夾層結(jié)構(gòu)滾筒剝離強(qiáng)度試驗方法
- 康復(fù)治療技術(shù)(康復(fù)養(yǎng)老服務(wù))專業(yè)群建設(shè)方案
- 靜音房聲學(xué)設(shè)計方案
- 第五章結(jié)型場效應(yīng)晶體管
- 麗聲北極星自然拼讀繪本第一級Uncle Vic‘s Wagon 課件
- 2019幼兒園家委會PPT
- T∕CAAA 002-2018 燕麥 干草質(zhì)量分級
- 單人徒手心肺復(fù)蘇術(shù)PPT課件
評論
0/150
提交評論