![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-9/23/21/6cf32a87-ed24-475a-b1e6-ea3fb3b5f6e9/6cf32a87-ed24-475a-b1e6-ea3fb3b5f6e9pic.jpg)
![資料結(jié)構(gòu)(datastructures)_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-9/23/21/6cf32a87-ed24-475a-b1e6-ea3fb3b5f6e9/6cf32a87-ed24-475a-b1e6-ea3fb3b5f6e91.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Chap 3,資料庫(kù)模型與處理架構(gòu),3-1 資料模型的基礎(chǔ)-說(shuō)明,「資料模型」(Data Model)是使用一組整合觀念來(lái)描述資料、資料間的關(guān)係和資料的限制條件(是否是正確資料),也就是用來(lái)描述資料庫(kù)中資料的特性。,,3-1 資料模型的基礎(chǔ)-圖例,概念資料模型:這是與資料庫(kù)管理系統(tǒng)無(wú)關(guān),即沒(méi)有使用特定資料庫(kù)種類來(lái)建立資料模型,以概念方式描述大多數(shù)使用者認(rèn)知的資料。邏輯資料模型:使用特定資料庫(kù)種類建立的資料模型,例如:關(guān)聯(lián)式資料模型,這
2、是用來(lái)描述ANSI/SPARC三層資料庫(kù)架構(gòu)中,位在概念層以上的概念和外部層資料。實(shí)體資料模型:這個(gè)資料模型是用來(lái)描述ANSI/SPARC三層資料庫(kù)架構(gòu)的內(nèi)部層資料。,3-1 資料模型的基礎(chǔ),完整的資料庫(kù)程式設(shè)計(jì),以關(guān)聯(lián)式資料庫(kù)設(shè)計(jì)為例:先收集使用者認(rèn)知的資料,以概念資料庫(kù)設(shè)計(jì)建立概念資料模型接著將概念資料模型執(zhí)行關(guān)聯(lián)表正規(guī)化,轉(zhuǎn)換成邏輯資料模型最後建立實(shí)體資料模型的實(shí)體資料庫(kù)設(shè)計(jì),3-1 資料模型的基礎(chǔ),建立概念資料模型的原因
3、,如下所示:能夠進(jìn)一步了解資料範(fàn)圍。增加與最終使用者的溝通機(jī)會(huì)。開(kāi)發(fā)與資料庫(kù)管理系統(tǒng)無(wú)關(guān)的資料模型。儘早發(fā)現(xiàn)資料庫(kù)設(shè)計(jì)的錯(cuò)誤。,3-1-2 概念資料模型,概念資料模型最常使用「實(shí)體關(guān)聯(lián)模型」(Entity-Relationship Model,簡(jiǎn)稱E-R Model)以圖形方式建立,稱為「實(shí)體關(guān)聯(lián)圖」(Entity-Relationship Diagram),這是1976年由Peter Chen提出,他相信在真實(shí)世界中,實(shí)體和其
4、關(guān)聯(lián)是最自然的模型化觀念,換句話說(shuō),實(shí)體關(guān)聯(lián)模型的基礎(chǔ)是建構(gòu)在實(shí)體和關(guān)聯(lián)性之上。,3-1-2 概念資料模型,,3-1-2 概念資料模型,第一個(gè)邏輯資料模型是關(guān)聯(lián)式模型,因?yàn)槭顷P(guān)聯(lián)式資料庫(kù)的資料模型,所以本書(shū)稱為關(guān)聯(lián)式資料庫(kù)模型。關(guān)聯(lián)式資料庫(kù)模型是由E. F. Codd在1970年所提出,邏輯資料模型主要是由三種元素組成,如下所示:資料結(jié)構(gòu)(Data Structures):資料的組成方式,以關(guān)聯(lián)式資料庫(kù)模型來(lái)說(shuō),就是欄和列組成的表格
5、。資料操作或運(yùn)算(Data Manipulation或Operations):資料的相關(guān)操作。例如:新增、刪除、更新和查詢。完整性限制條件(Integrity Constraints):維護(hù)資料完整性的限制條件,其目的是確保資料是合法的資料。,3-1-3 邏輯資料模型,資料庫(kù)系統(tǒng)演進(jìn)各年代的資料庫(kù)系統(tǒng)中,其使用的資料庫(kù)模型就是邏輯資料模型,主要有四種邏輯資料模型,如下所示:網(wǎng)路式資料庫(kù)模型(Network Databse Mode
6、l)。階層式資料庫(kù)模型(Hierarchical Database Model)。關(guān)聯(lián)式資料庫(kù)模型(Relational Database Model)。物件導(dǎo)向式資料庫(kù)模型(Object-Oriented Database Model)。,3-1-3 邏輯資料模型-說(shuō)明,,3-1-3 邏輯資料模型-圖例,將學(xué)校的開(kāi)課資料的實(shí)體關(guān)聯(lián)圖轉(zhuǎn)換成邏輯資料模型,實(shí)體資料模型(Physical Data Model)是針對(duì)指定資料庫(kù)管理系統(tǒng)
7、建立實(shí)際架構(gòu)的模型,資料模型可以顯示資料是如何實(shí)作和儲(chǔ)存在資料庫(kù)。關(guān)聯(lián)式資料庫(kù)管理系統(tǒng)的實(shí)體資料模型是建立關(guān)聯(lián)表的表格、關(guān)聯(lián)性和定義索引。,3-1-4 實(shí)體資料模型,,3-1-4 實(shí)體資料模型-圖例,3-2-1 網(wǎng)路式資料庫(kù)模型3-2-2 階層式資料庫(kù)模型3-2-3 物件導(dǎo)向式資料庫(kù)模型3-2-4 物件關(guān)聯(lián)式資料庫(kù)模型,3-2 資料庫(kù)模型,網(wǎng)路式資料庫(kù)和階層式資料庫(kù)系統(tǒng)約在同一個(gè)年代開(kāi)發(fā),早於關(guān)聯(lián)式資料庫(kù)系統(tǒng),不過(guò)網(wǎng)路式資料庫(kù)模
8、型(Network Database Model)是在關(guān)聯(lián)式資料庫(kù)模型出現(xiàn)後才出現(xiàn)的資料模型(這是參考關(guān)聯(lián)式資料庫(kù)模型所導(dǎo)出),資料模型採(cǎi)用網(wǎng)路圖形來(lái)連結(jié)資料。網(wǎng)路式資料庫(kù)模型支援多對(duì)多關(guān)聯(lián)性,這是依據(jù)1971年由CODASYL DBTG(Conference on Data Systems Languages Database Task Group)組織所提出的報(bào)告,或稱為DBTG模型,Database Task Group從196
9、0年代後期就開(kāi)始發(fā)展的網(wǎng)路式資料庫(kù)系統(tǒng)。,3-2-1 網(wǎng)路式資料庫(kù)模型,網(wǎng)路式資料庫(kù)模型是將資料組織成網(wǎng)路狀圖形,資料間連接可以擁有迴圈。網(wǎng)路式資料庫(kù)模型的兩種基本型態(tài),如下所示:記錄型態(tài)(Record Type):記錄型態(tài)是由一組屬性所組成,每一個(gè)記錄型態(tài)的成員稱為記錄,資料是一組記錄的集合。連接型態(tài)(Link Type):它是連接兩個(gè)記錄型態(tài)的型態(tài),屬於一對(duì)多關(guān)聯(lián)性(Relationship),這是從稱為「擁有者型態(tài)」(Owne
10、r Type)關(guān)聯(lián)到多個(gè)「成員型態(tài)」(Member Type)。,3-2-1 網(wǎng)路式資料庫(kù)模型,,網(wǎng)路式資料庫(kù)模型是建立在兩種「集合結(jié)構(gòu)」(Set Structures),也就是一組記錄型態(tài)的記錄集合和一組連接型態(tài)的連接集合,如下圖所示:,3-2-1 網(wǎng)路式資料庫(kù)模型,,3-2-1 網(wǎng)路式資料庫(kù)模型,階層式資料庫(kù)模型(Hierarchical Database Model)類似網(wǎng)路式資料庫(kù)模型,只是使用樹(shù)狀結(jié)構(gòu)來(lái)組織資料,記錄資料間是以
11、父子關(guān)係來(lái)建立鏈結(jié),子記錄只能擁有一個(gè)父記錄。在1960年代後期階層式資料庫(kù)模型的資料庫(kù)管理系統(tǒng)非常的普遍,最著名的階層式資料庫(kù)系統(tǒng)是1968年IBM公司開(kāi)發(fā)的「IMS」(Information Management System),這也是最早商用的資料庫(kù)管理系統(tǒng)。,3-2-2 階層式資料庫(kù)模型,階層式資料庫(kù)模型的資料結(jié)構(gòu)一定擁有一個(gè)「樹(shù)根」(Root),使用「父子關(guān)聯(lián)性」來(lái)鏈結(jié)記錄集合,將資料建立成階層的樹(shù)狀結(jié)構(gòu)。記錄型態(tài)(Rec
12、ord Type):記錄型態(tài)是由一組欄位屬性組成。每一個(gè)記錄型態(tài)的成員稱為記錄,資料是一組記錄的集合。父子關(guān)聯(lián)型態(tài)(Parent-child Relationship Type):兩個(gè)記錄型態(tài)間的連接型態(tài),屬於一對(duì)多關(guān)聯(lián)性,這是從稱為「父記錄型態(tài)」關(guān)聯(lián)到多個(gè)「子記錄型態(tài)」。,3-2-2 階層式資料庫(kù)模型,,階層式資料庫(kù)模型是由多個(gè)記錄型態(tài),然後使用父子關(guān)聯(lián)型態(tài)將它連接起來(lái),如下圖所示:,3-2-2 階層式資料庫(kù)模型,,3-2-2 階層
13、式資料庫(kù)模型,,多對(duì)多關(guān)聯(lián)性在階層式資料庫(kù)模型可以重複記錄型態(tài),如下圖所示:,3-2-2 階層式資料庫(kù)模型,,「虛擬記錄型態(tài)」(Virtual Record Type)的記錄只是一個(gè)指標(biāo),指向其他記錄型態(tài)的記錄,如下圖所示:,3-2-2 階層式資料庫(kù)模型,「物件導(dǎo)向式資料庫(kù)模型」(Object-Oriented Database Model)是在物件導(dǎo)向程式語(yǔ)言新增資料庫(kù)功能,換句話說(shuō),就是使用物件導(dǎo)向方式來(lái)模擬關(guān)聯(lián)式資料庫(kù)的功能。物
14、件導(dǎo)向式資料庫(kù)模型的主要目的是統(tǒng)一應(yīng)用程式和資料庫(kù)開(kāi)發(fā)的資料模型和語(yǔ)言環(huán)境,物件導(dǎo)向式資料庫(kù)模型讓程式設(shè)計(jì)和資料庫(kù)統(tǒng)一使用物件導(dǎo)向方式進(jìn)行設(shè)計(jì)。,3-2-3 物件導(dǎo)向式資料庫(kù)模型,,,物件是資料與相關(guān)處理資料的程序和函數(shù)結(jié)合在一起的組合體,資料就是變數(shù),程序和函數(shù),其中程序與函數(shù)稱為方法,如下圖所示:,3-2-3 物件導(dǎo)向式資料庫(kù)模型,狀態(tài)(State):物件所有「屬性」的狀態(tài)值,屬性是用來(lái)儲(chǔ)存物件的狀態(tài),可以簡(jiǎn)單的只是一個(gè)布林值變數(shù),
15、也可能是另一個(gè)物件,例如:車子的車型、排氣量等屬性。行為(Behavior):行為是物件可見(jiàn)部分提供的服務(wù),也就是塑模所抽象化的操作,可以作什麼事,使用方法來(lái)實(shí)作行為,例如:車子可以發(fā)動(dòng)、停車、加速和換擋等。識(shí)別字(Identity):識(shí)別字是用來(lái)識(shí)別不同的物件,每一個(gè)物件都擁有獨(dú)一無(wú)二的識(shí)別字。,3-2-3 物件導(dǎo)向式資料庫(kù)模型,類別是一種分類,將擁有相同特性的物件集合歸類在同一類別,在前面我們建立摸擬各種車輛的Car、Car1、
16、Car2、Car3…等物件,各物件擁有相同屬性和行為,只是狀態(tài)不同。簡(jiǎn)單的說(shuō),這些物件屬於同一類,反過(guò)來(lái)看,我們可以建立一個(gè)範(fàn)本來(lái)建立這些物件,如同工廠依照藍(lán)圖製造車輛,這個(gè)範(fàn)本就是類別,屬於同一類別的物件即該類別的「實(shí)例」(Instance)。,3-2-3 物件導(dǎo)向式資料庫(kù)模型,繼承(Inheritance)是物件導(dǎo)向程式設(shè)計(jì)的重要觀念,繼承是宣告的類別繼承現(xiàn)存類別的部分或全部的成員資料和方法、新增額外的成員資料和方法或覆寫和隱藏繼
17、承類別的方法或資料。,3-2-3 物件導(dǎo)向式資料庫(kù)模型,,,類別的繼承關(guān)係可以建立「類別架構(gòu)」(Class Hierarchy),如下圖所示:,3-2-3 物件導(dǎo)向式資料庫(kù)模型,物件導(dǎo)向式資料庫(kù)(Object-oriented Database)使用物件導(dǎo)向式資料模型,以物件導(dǎo)向程式語(yǔ)言定義資料庫(kù)的結(jié)構(gòu),以Java語(yǔ)言來(lái)說(shuō)就是類別(Class),一個(gè)類別相當(dāng)於關(guān)聯(lián)式資料庫(kù)的一個(gè)關(guān)聯(lián)表,例如:使用Java語(yǔ)言定義Book類別,如下所示:
18、class Book { public String b_no; public String title; public float price; public Author getAuthor() { …… } public Publisher getPublisher() { …… }},3-2-3 物件導(dǎo)向式資料庫(kù)模型,,物件導(dǎo)向式資料庫(kù)是物件導(dǎo)向程式設(shè)計(jì)和資料庫(kù)技術(shù)的聯(lián)姻,如下圖所示:,
19、3-2-3 物件導(dǎo)向式資料庫(kù)模型,「物件關(guān)聯(lián)式資料庫(kù)模型」(Object-relational Database Model)是一種結(jié)合物件導(dǎo)向式和關(guān)聯(lián)式資料庫(kù)模型,擴(kuò)充關(guān)聯(lián)式資料庫(kù)模型的功能,所以其基本的觀念仍然是關(guān)聯(lián)式資料庫(kù)模型,只是新增結(jié)構(gòu)化屬性,能夠自行定義資料型態(tài)。國(guó)際標(biāo)準(zhǔn)組織(International Standards Organization, ISO)在新版的標(biāo)準(zhǔn)SQL語(yǔ)言新增物件關(guān)聯(lián)式模型的觀念,稱為SQL 99
20、或SQL 3,在SQL:99新增物件觀念,可以擴(kuò)充資料型態(tài)儲(chǔ)存複雜的資料,但是仍相容於關(guān)聯(lián)式資料庫(kù)。,3-2-4 物件關(guān)聯(lián)式資料庫(kù)模型,,物件關(guān)聯(lián)式資料庫(kù)模型支援「巢狀關(guān)聯(lián)表」(Nested Relations),也就是說(shuō),資料型態(tài)不只可以使用關(guān)聯(lián)式資料庫(kù)的基本型態(tài),還可以使用自訂型態(tài)的物件,相當(dāng)於是另一個(gè)關(guān)聯(lián)表。例如:在Authors關(guān)聯(lián)表新增名為address的新型態(tài),如下圖所示:,3-2-4 物件關(guān)聯(lián)式資料庫(kù)模型,,物件關(guān)聯(lián)式資料
21、庫(kù)的關(guān)聯(lián)表和巢狀關(guān)聯(lián)表,如下圖所示:,3-2-4 物件關(guān)聯(lián)式資料庫(kù)模型,資料庫(kù)系統(tǒng)以使用者人數(shù)來(lái)區(qū)分:?jiǎn)稳耸褂枚嗳耸褂觅Y料庫(kù)系統(tǒng)以使用範(fàn)圍(Scope)區(qū)分:桌上型(Desktop)工作群組(Workgroup)企業(yè)級(jí)(Enterprise)資料庫(kù)系統(tǒng)以位置來(lái)區(qū)分,資料庫(kù)系統(tǒng)的資料處理可能位在同一臺(tái)主機(jī)或網(wǎng)路上的其他主機(jī):集中式資料處理(Centralized Data Processing)分散式資料處理(Distr
22、ibuted Data Processing),3-3 資料庫(kù)系統(tǒng)的種類,如果資料庫(kù)系統(tǒng)使用前述的資料庫(kù)模型來(lái)區(qū)分,資料庫(kù)系統(tǒng)可以依使用的資料庫(kù)模型進(jìn)行分類,如下所示:網(wǎng)路式資料庫(kù)系統(tǒng)。階層式資料庫(kù)系統(tǒng)。關(guān)聯(lián)式資料庫(kù)系統(tǒng)。物件導(dǎo)向式資料庫(kù)系統(tǒng)。物件關(guān)聯(lián)式資料庫(kù)系統(tǒng)。,3-3 資料庫(kù)系統(tǒng)的種類,「架構(gòu)」(Architecture)這個(gè)名詞可以指單獨(dú)一臺(tái)電腦設(shè)計(jì),不過(guò)對(duì)於企業(yè)組織來(lái)說(shuō),通常是指整個(gè)公司組織電腦系統(tǒng)的配置,包含實(shí)際使
23、用的電腦硬體種類、網(wǎng)路、配置的位置和使用的電腦運(yùn)算方式。資料庫(kù)系統(tǒng)架構(gòu)可以分成兩種處理架構(gòu),如下所示:集中式處理架構(gòu)(Centralized Processing Architectures)。分散式處理架構(gòu)(Distributed Processing Architectures)。,3-4 架構(gòu)的基礎(chǔ),在早期大型主機(jī)(Mainframe)時(shí)代,電腦系統(tǒng)主要是使用IBM公司開(kāi)發(fā)的「系統(tǒng)網(wǎng)路架構(gòu)」(Systems Network
24、Architecture, SNA),這種架構(gòu)屬於集中式處理架構(gòu),擁有一臺(tái)大型主機(jī),使用多個(gè)終端機(jī)與主機(jī)溝通。以資料庫(kù)系統(tǒng)來(lái)說(shuō),資料庫(kù)管理系統(tǒng)和作業(yè)系統(tǒng)都在同一臺(tái)電腦執(zhí)行,使用者透過(guò)終端機(jī)將資訊送到主機(jī),例如:資料庫(kù)查詢指令,然後從主機(jī)取得回應(yīng)結(jié)果,在終端機(jī)顯示的結(jié)果是由主機(jī)產(chǎn)生的資料,終端機(jī)只負(fù)責(zé)顯示取得的資料。,3-5 集中式處理架構(gòu),,3-5 集中式處理架構(gòu),資料庫(kù)系統(tǒng)分成使用者的前臺(tái)(Frontends)和資料庫(kù)的後臺(tái)(Bac
25、kends),分別分散執(zhí)行所需的工作,如下所示:前臺(tái)(Frontend):使用者執(zhí)行的應(yīng)用程式,用來(lái)執(zhí)行資料庫(kù)查詢等資料處理,然後顯示執(zhí)行的結(jié)果。後臺(tái)(Backend):執(zhí)行資料處理的資料庫(kù)管理系統(tǒng)。,3-6 分散式處理架構(gòu)-前後臺(tái),,3-6 分散式處理架構(gòu)-前後臺(tái)圖例,「檔案分享架構(gòu)」並不是一種主從架構(gòu),它是主從架構(gòu)的前身,早期個(gè)人電腦網(wǎng)路都是採(cǎi)用檔案分享架構(gòu),主機(jī)扮演的角色單純只是「檔案伺服器」(File Server)??蛻?/p>
26、端向檔案伺服器請(qǐng)求資料檔案,然後將檔案下載到客戶端,然後在客戶端電腦啟動(dòng)資料庫(kù)管理系統(tǒng)執(zhí)行資料處理,真正執(zhí)行資料處理是在客戶端的個(gè)人電腦或工作站,檔案伺服器只是儲(chǔ)存和管理檔案,稱為「檔案伺服器模型」。,3-6-1 檔案分享架構(gòu),主從架構(gòu)的電腦本身並沒(méi)有分別,只是扮演不同的角色,分為伺服端(Server)和客戶端(Client),如下所示:伺服端(Server):在主從架構(gòu)中扮演提供服務(wù)(Service)的提供者(Provider)角色
27、。客戶端(Client):在主從架構(gòu)中的角色是提出服務(wù)請(qǐng)求(Request)的請(qǐng)求者(Requester)。,3-6-2 主從架構(gòu)的基礎(chǔ),,3-6-2 主從架構(gòu)的基礎(chǔ),標(biāo)準(zhǔn)主從架構(gòu)是二層式主從架構(gòu)(Two-Tier Client/Server Architecture)。二層式主從架構(gòu)可以分成兩部分,如下:展示層(Presentation Tier):與使用者互動(dòng)的使用介面,這是實(shí)際使用者看到的應(yīng)用程式,同時(shí)負(fù)責(zé)商業(yè)邏輯(Busi
28、ness Logic)和資料處理邏輯(Data Processing Logic)。資料層(Data Tier):負(fù)責(zé)資料的儲(chǔ)存,以資料庫(kù)系統(tǒng)來(lái)說(shuō),就是管理資料庫(kù)的資料庫(kù)管理系統(tǒng)。,3-6-3 二層式主從架構(gòu),,3-6-3 二層式主從架構(gòu),缺點(diǎn)更改商業(yè)和資料處理邏輯就需要重新修改、編譯和安裝展示層應(yīng)用程式。二層式主從架構(gòu)只傳遞回應(yīng)資料,但是真正的資料處理是在展示層應(yīng)用程式,所需的資料仍然需要從資料層傳送到展示層,增加區(qū)域網(wǎng)路負(fù)載。
29、在從端的每一個(gè)展示層應(yīng)用程式都需要獨(dú)立的資料庫(kù)連結(jié),並且保持連線狀態(tài),而區(qū)域網(wǎng)路最多只能支援大約100人同時(shí)建立資料庫(kù)連結(jié)。客戶端應(yīng)用程式的程式碼是使用特定資料庫(kù)管理系統(tǒng)的函式庫(kù),如果資料庫(kù)管理系統(tǒng)更改時(shí),展示層應(yīng)用程式的程式碼也須修改。,3-6-3 二層式主從架構(gòu),擴(kuò)充二層式主從架構(gòu),在之間新增一層「商業(yè)邏輯層」(Business Logic Tier),就成為「三層式主從架構(gòu)」(Three-Tier Client/Server
30、Architecture),將二層式主從架構(gòu)展示層的資料處理和商業(yè)邏輯功能獨(dú)立成「應(yīng)用程式伺服器」(Application Server)。應(yīng)用程式伺服器(Application Server)如同餐廳中超高效率的服務(wù)生,從展示層的前臺(tái)取得點(diǎn)選的套餐,將它送到後臺(tái)的資料庫(kù)伺服器取得所需的各種餐點(diǎn),在處理後,送到前臺(tái)的是一套完整組合的套餐。,3-6-4 三層式主從架構(gòu),,3-6-4 三層式主從架構(gòu)-圖例,優(yōu)點(diǎn)清楚切割使用介面的展示層和
31、商業(yè)邏輯層的資料處理與商業(yè)邏輯,如此可以重複使用資料處理和商業(yè)邏輯的現(xiàn)成軟體元件,加速應(yīng)用程式的開(kāi)發(fā)。集中管理和維護(hù)商業(yè)邏輯,如有更改,只需更改商業(yè)邏輯層的應(yīng)用程式伺服器,而不用更改展示層的應(yīng)用程式。更改資料層的資料庫(kù)管理系統(tǒng),同樣不會(huì)影響展示層的應(yīng)用程式。商業(yè)邏輯層和資料層的實(shí)際架構(gòu)可以位在同一臺(tái)電腦伺服器,或是不同電腦使用高速網(wǎng)路連接,如此可以解決網(wǎng)路資料傳遞的頻寬問(wèn)題。,3-6-4 三層式主從架構(gòu),多層架構(gòu)(N-Tier A
32、rchitecture)是將三層式主從架構(gòu)進(jìn)行再次的擴(kuò)充,N表示分割成3、4或5等層,需視資料庫(kù)系統(tǒng)架構(gòu)的需求來(lái)進(jìn)行分割。多層架構(gòu)是將三層式架構(gòu)的商業(yè)邏輯層架構(gòu)再次分割成獨(dú)立軟體元件的多個(gè)應(yīng)用程式伺服器,事實(shí)上,三層式架構(gòu)可視為一種最基本的多層架構(gòu)。,3-6-5 多層架構(gòu),,3-6-5 多層架構(gòu)-網(wǎng)頁(yè)資料庫(kù)圖例,「中介軟體」(Middleware)是一種軟體用來(lái)整合不同應(yīng)用程式,以便各應(yīng)用程式可以使用標(biāo)準(zhǔn)方式進(jìn)行連結(jié)和資料的交換。中
33、介軟體可以隱藏背後實(shí)際執(zhí)行的應(yīng)用程式,只需透過(guò)中介軟體就可以進(jìn)行與其他應(yīng)用程式的通訊和資料交換。,3-7 中介軟體,在資料庫(kù)系統(tǒng)架構(gòu),中介軟體在二層式主從架構(gòu)是連接前臺(tái)和後臺(tái)的軟體程式,在三層式主從架構(gòu)是用來(lái)連接商業(yè)邏輯層和資料層的資料庫(kù)管理系統(tǒng)。中介軟體的主要的目的是簡(jiǎn)化資料庫(kù)應(yīng)用程式的開(kāi)發(fā),因?yàn)橘Y料庫(kù)管理系統(tǒng)的種類繁多且支援多種作業(yè)系統(tǒng),各家廠商都擁有專屬函式庫(kù)呼叫來(lái)進(jìn)行通訊和資料交換。,3-7-1 資料庫(kù)系統(tǒng)的中介軟體,,3-7
34、-1 資料庫(kù)系統(tǒng)的中介軟體優(yōu)點(diǎn),微軟主導(dǎo)的資料庫(kù)中介軟體有兩種:ODBC。OLE DB。OLE DB和ODBC的主要差異是OLE DB資料來(lái)源並不限於關(guān)聯(lián)式資料庫(kù),它也可以使用在非關(guān)聯(lián)式資料庫(kù)、試算表或文字檔案等其他資料來(lái)源。,3-7-2 微軟的中介軟體-說(shuō)明,微軟主導(dǎo)的資料庫(kù)中介軟體稱為「ODBC」,ODBC提供標(biāo)準(zhǔn)方式存取關(guān)聯(lián)式資料庫(kù)伺服器的資料,程式使用「ODBC API」呼叫來(lái)建立所需的應(yīng)用程式,ODBC架構(gòu)主要分成兩個(gè)部
35、分:ODBC驅(qū)動(dòng)程式管理員(ODBC Driver Manager):管理ODBC支援的各種驅(qū)動(dòng)程式,以便使用正確的ODBC驅(qū)動(dòng)程式來(lái)轉(zhuǎn)換ODBC API呼叫。ODBC驅(qū)動(dòng)程式(ODBC Driver):各種資料庫(kù)管理系統(tǒng)支援的驅(qū)動(dòng)程式,可以將ODBC API呼叫轉(zhuǎn)換成專屬資料庫(kù)管理系統(tǒng)的原生API呼叫。,3-7-2 微軟的中介軟體-ODBC,,3-7-2 微軟的中介軟體-ODBC(圖例),OLE DB(也寫成OLE-DB或OLED
36、B)是一種微軟開(kāi)發(fā)的資料庫(kù)存取介面API,它是繼ODBC後,微軟另一種開(kāi)放規(guī)格的資料存取介面。OLE DB是使用COM(Component Object Model)元件來(lái)實(shí)作存取介面,可以使用一致行為來(lái)存取不同資料來(lái)源的資料,支援關(guān)聯(lián)式資料庫(kù)、非關(guān)聯(lián)式資料庫(kù)的物件導(dǎo)向資料庫(kù)、文字檔、電子郵件、目錄服務(wù)、試算表和商業(yè)物件等不同來(lái)源的資料。,3-7-2 微軟的中介軟體-OLE DB,,3-7-2 微軟的中介軟體-OLE DB,昇陽(yáng)公司提
37、出的資料庫(kù)中介軟體是「JDBC」是一種開(kāi)放標(biāo)準(zhǔn)的Java程式介面,可以讓Java程式連結(jié)資料庫(kù)管理系統(tǒng)。以Java程式語(yǔ)言來(lái)說(shuō),這是一個(gè)實(shí)作JDBC驅(qū)動(dòng)程式介面的類別,即JDBC API,JDBC驅(qū)動(dòng)程式介面主要分為兩類:透過(guò)其他中介軟體作為另一種中介軟體的橋樑。JDBC驅(qū)動(dòng)程式介面可以直接連接資料庫(kù)管理系統(tǒng)。,3-7-3 昇陽(yáng)的JDBC,,3-7-3 昇陽(yáng)的JDBC-圖例,若資料庫(kù)伺服器只有一個(gè),資料庫(kù)的資料是集中儲(chǔ)存在一個(gè)地方
38、,稱為「集中式資料庫(kù)系統(tǒng)」。集中式資料庫(kù)系統(tǒng)雖然方便資料管理,但風(fēng)險(xiǎn)高、易受網(wǎng)路流量影響傳輸速度且主機(jī)負(fù)荷量大。分散式資料庫(kù)系統(tǒng):將資料依特性分散儲(chǔ)存在以網(wǎng)路的連接的資料庫(kù)伺服器上,3-8 分散式資料庫(kù)系統(tǒng),,3-8 分散式資料庫(kù)系統(tǒng)-圖例,「分散式資料庫(kù)」(Distributed Database, DDB):指資料在邏輯上屬於同一個(gè)資料庫(kù)系統(tǒng),不過(guò)事實(shí)上,實(shí)際的資料是分散儲(chǔ)存在以網(wǎng)路連接的不同資料庫(kù)伺服器上。「分散式資料庫(kù)管理
39、系統(tǒng)」:管理分散式資料庫(kù)的軟體,提供資料的分散儲(chǔ)存,但是使用者並不會(huì)認(rèn)為它是在存取分散儲(chǔ)存的資料,對(duì)於使用者來(lái)說(shuō),仍然是一個(gè)完整的資料庫(kù),如此稱為「透通性」(Transparent)。,3-8-1 分散式資料庫(kù)系統(tǒng)的基礎(chǔ),最基本的分散式資料庫(kù)系統(tǒng)架構(gòu)是使用主從架構(gòu),它是由多個(gè)站(Sites)或稱為點(diǎn)(Nodes)所組成,使用通訊網(wǎng)路(Communication Network)連接,可以使用區(qū)域網(wǎng)路(Local Area Network
40、)或廣域網(wǎng)路(Wide Area Network)。分散式資料庫(kù)系統(tǒng)分成1~N個(gè)站,有些站的角色是客戶端(從端),有些站是伺服器(主端),有些站同時(shí)擁有客戶和伺服器,資料庫(kù)分散置於擁有伺服器的各站。,3-8-1 分散式資料庫(kù)系統(tǒng)的基礎(chǔ),,3-8-1 分散式資料庫(kù)系統(tǒng)的基礎(chǔ),3-8-1 分散式資料庫(kù)系統(tǒng)的基礎(chǔ),分散式資料庫(kù)系統(tǒng)分成1~N個(gè)站,有些站的角色是客戶端,有些站是伺服器,有些兩者兼具,資料庫(kù)分散於擁有伺服器的各站分散式資料庫(kù)系
41、統(tǒng)主要在客戶端軟體處理分散功能,所以客戶端需要產(chǎn)生多站查詢和交易管理的執(zhí)行計(jì)畫,優(yōu)點(diǎn)增加資料庫(kù)系統(tǒng)的執(zhí)行效能:在最近的地方就可以取得所需的資料。提高可靠性和可用性:就算有些伺服器當(dāng)機(jī)或出現(xiàn)網(wǎng)路問(wèn)題,分散式資料庫(kù)系統(tǒng)仍然擁有足夠的妥善率,不會(huì)影響整個(gè)資料庫(kù)系統(tǒng)的運(yùn)作。更多的彈性和擴(kuò)充性:因?yàn)橘Y料是分散儲(chǔ)存在多臺(tái)伺服器,不論擴(kuò)充與重新配置資料庫(kù)伺服器的彈性都比較高。分享與區(qū)域自主性:資料庫(kù)伺服器的資料可以分享,也可以只讓區(qū)域的使用者
42、存取。,3-8-2 分散式資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn),缺點(diǎn)系統(tǒng)複雜:資料是分散儲(chǔ)存在各地的伺服器,所以分散式資料庫(kù)系統(tǒng)的複雜度相當(dāng)高。成本高昂:相關(guān)應(yīng)用程式的開(kāi)發(fā)成本隨著分散程度而提高。維護(hù)不易:分散式資料庫(kù)系統(tǒng)維護(hù)不易,容易產(chǎn)生資料安全與整合問(wèn)題。缺乏標(biāo)準(zhǔn):目前並沒(méi)有分散式資料庫(kù)系統(tǒng)的官方標(biāo)準(zhǔn)。,3-8-2 分散式資料庫(kù)系統(tǒng)的優(yōu)缺點(diǎn),同質(zhì)分散式資料庫(kù)系統(tǒng)(Homogeneous Distributed Database System)
43、指所有資料庫(kù)伺服器都採(cǎi)用相同的資料庫(kù)管理系統(tǒng),使用相同的資料庫(kù)模型和資料操作方式。異質(zhì)分散式資料庫(kù)系統(tǒng)(Heterogeneous Distributed Database System)指資料庫(kù)伺服器使用不同的資料庫(kù)管理系統(tǒng),例如:同時(shí)使用SQL Server和Oracle,此時(shí)需要考量不同資料庫(kù)管理系統(tǒng)和不同格式資料間的整合問(wèn)題。,3-8-3 分散式資料庫(kù)系統(tǒng)的種類,「資料分割」(Data Fragmentation)是分割資
44、料庫(kù)的資料成為一個(gè)個(gè)片斷(Fragment),以便將各片斷分散儲(chǔ)存在其他資料庫(kù)伺服器,其中每一個(gè)片斷是資料庫(kù)的一個(gè)較小的邏輯單位。以分散式關(guān)聯(lián)式資料庫(kù)為例,各資料庫(kù)只會(huì)儲(chǔ)存關(guān)聯(lián)表的部分片斷,其分割方式有水平方向的水平分割和垂直方向的垂直分割。,3-8-4 資料分割-說(shuō)明,,水平分割(Horizontal Fragmentation)以關(guān)聯(lián)式資料庫(kù)為例,就是將關(guān)聯(lián)表以值組的列為分割單位,分割成更小的邏輯單位。,3-8-4 資料分割-水
45、平分割,,垂直分割(Vertical Fragmentation)以關(guān)聯(lián)式資料庫(kù)為例,就是將關(guān)聯(lián)表以屬性的欄為分割單位,分割成更小的邏輯單位。,3-8-4 資料分割-垂直分割,「資料複寫」(Data Replication)是分散式資料庫(kù)系統(tǒng)的重要特點(diǎn),複寫是建立資料庫(kù)的備份,其中原始資料庫(kù)稱為主資料庫(kù)(Master),複寫的資料庫(kù)稱為拷貝資料庫(kù)(Replica),在主資料庫(kù)和拷貝資料庫(kù)之間需要定時(shí)進(jìn)行同步更新。在分散式資料庫(kù)系統(tǒng)使
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 資料結(jié)構(gòu)
- 資料結(jié)構(gòu)_課程
- 資料(鋼結(jié)構(gòu)資料全套表格)
- 鋼結(jié)構(gòu)資料匯總
- 鋼結(jié)構(gòu)資料-檢驗(yàn)批
- 鋼結(jié)構(gòu)驗(yàn)收資料(全部)
- 硝酸鋼結(jié)構(gòu)驗(yàn)收資料
- 鋼結(jié)構(gòu)資料全套表格
- 鋼結(jié)構(gòu)驗(yàn)收資料(全套)
- 鋼結(jié)構(gòu)-施工管理資料
- 地下結(jié)構(gòu)復(fù)習(xí)資料
- 鋼結(jié)構(gòu)復(fù)習(xí)資料
- 鋼結(jié)構(gòu)驗(yàn)收資料(全套)
- 鋼結(jié)構(gòu)金鋼獎(jiǎng)全套資料
- 鋼結(jié)構(gòu)工程竣工驗(yàn)收資料
- 免費(fèi)-hsk刀柄結(jié)構(gòu)新資料
- 【資料】2細(xì)菌的結(jié)構(gòu)ii
- 結(jié)構(gòu)化面試總結(jié)資料
- 鋼結(jié)構(gòu)竣工資料 全
- 鋼結(jié)構(gòu)驗(yàn)收資料(全套范例)
評(píng)論
0/150
提交評(píng)論