72
3-1 資資資資資資資 3-2 資資資資資 3-3 資資資資資資資資 3-4 資資資資資 3-5 資資資資資資資 3-6 資資資資資資資 3-7 資資資 3-8 資資資資資資資資 資3資 資資資資資資資資資資

第 3 章 資料庫模型與處理架構

  • Upload
    takoda

  • View
    93

  • Download
    1

Embed Size (px)

DESCRIPTION

第 3 章 資料庫模型與處理架構. 3-1 資料模型的基礎 3-2 資料庫模型 3-3 資料庫系統的種類 3-4 架構的基礎 3-5 集中式處理架構 3-6 分散式處理架構 3-7 中介軟體 3-8 分散式資料庫系統. 3-1 資料模型的基礎- 圖例. 3-1 資料模型的基礎- 圖例說明 2. 概念資料庫設計( Conceptual Database Design ): 沒有使用特定資料庫種類建立的概念綱要。 邏輯資料庫設計( Logical Database Design ): 將概念資料模型轉換成邏輯資料模型的過程 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 3 章   資料庫模型與處理架構

3-1 資料模型的基礎 3-2 資料庫模型 3-3 資料庫系統的種類 3-4 架構的基礎 3-5 集中式處理架構 3-6 分散式處理架構 3-7 中介軟體 3-8 分散式資料庫系統

第 3 章 資料庫模型與處理架構

Page 2: 第 3 章   資料庫模型與處理架構

3-1 資料模型的基礎 - 圖例

Page 3: 第 3 章   資料庫模型與處理架構

概念資料庫設計( Conceptual Database Design):沒有使用特定資料庫種類建立的概念綱要。

邏輯資料庫設計( Logical Database Design):• 將概念資料模型轉換成邏輯資料模型的過程

實體資料庫設計( Physical Database Design):內部綱要的資料庫設計稱為。• 將邏輯資料模型轉換成以關聯式資料庫為例的 SQL指令敘述來定義資料庫

• 敘述來定義資料庫

3-1 資料模型的基礎 - 圖例說明 2

Page 4: 第 3 章   資料庫模型與處理架構

概念資料模型最常使用「實體關聯模型」( Entity-Relationship Model ,簡稱 E-R Model )以圖形方式建立,稱為「實體關聯圖」( Entity-Relationship Diagram ),這是 1976 年由 Peter Chen 提出,他相信在真實世界中,實體和其關聯是最自然的模型化觀念,換句話說,實體關聯模型的基礎是建構在實體和關聯性之上。

3-1-1 概念資料模型 - 說明

Page 5: 第 3 章   資料庫模型與處理架構

3-1-1 概念資料模型 - 圖例

Page 6: 第 3 章   資料庫模型與處理架構

第一個邏輯資料模型( Logical Data Model )是關聯式模型( Relational Model ),因為是關聯式資料庫的資料模型,所以本書稱為關聯式資料庫模型( Relational Database Model )。

關聯式資料庫模型是由 E. F. Codd 在 1970 年所提出,邏輯資料模型主要是由三種元素組成:• 資料結構( Data Structures ):資料的組成方式,以關聯式資料庫模型來說,就是欄和列組成的表格。

• 資料操作或運算( Data Manipulation 或 Operations ):資料的相關操作。例如:新增、刪除、更新和查詢。

• 完整性限制條件( Integrity Constraints ):維護資料完整性的限制條件,確保資料是合法的資料。

3-1-2 邏輯資料模型 - 元素 P. 3-3

Page 7: 第 3 章   資料庫模型與處理架構

資料庫系統演進各年代的資料庫系統中,其使用的資料庫模型就是邏輯資料模型,主要有四種邏輯資料模型,如下所示:• 網路式資料庫模型( Network Database Model)。• 階層式資料庫模型( Hierarchical Database Model)。• 關聯式資料庫模型( Relational Database Model)。• 物件導向式資料庫模型( Object-Oriented Database

Model)。

3-1-2 邏輯資料模型 - 說明

Page 8: 第 3 章   資料庫模型與處理架構

3-1-2 邏輯資料模型 - 圖例

Page 9: 第 3 章   資料庫模型與處理架構

實體資料模型( Physical Data Model )是針對指定資料庫管理系統建立實際架構的模型,資料模型可以顯示資料是如何實作和儲存在資料庫。

關聯表、屬性、資料型態、關聯性、索引

3-1-3 實體資料模型 - 說明 P. 3-4

Page 10: 第 3 章   資料庫模型與處理架構

3-1-3 實體資料模型 - 圖例

Page 11: 第 3 章   資料庫模型與處理架構

3-2-1 網路式資料庫模型 3-2-2 階層式資料庫模型 3-2-3 物件導向式資料庫模型 3-2-4 物件關聯式資料庫模型

3-2 資料庫模型 P. 3-6

Page 12: 第 3 章   資料庫模型與處理架構

網路式資料庫和階層式資料庫系統約在同一個年代開發,早於關聯式資料庫系統,不過網路式資料庫模型( Network Database Model )是在關聯式資料庫模型出現後才出現的資料模型(這是參考關聯式資料庫模型所導出),資料模型採用網路圖形來連結資料。

網路式資料庫模型支援多對多關聯性( Relationship ),這是依據 1971 年由 CODASYL DBTG ( Conference on Data Systems Languages Database Task Group )組織所提出的報告,或稱為 DBTG 模型, Database Task Group 從 1960 年代後期就開始發展的網路式資料庫系統。

3-2-1 網路式資料庫模型 - 說明 P. 3-6

Page 13: 第 3 章   資料庫模型與處理架構

網路式資料庫模型是將資料組織成網路狀圖形,資料間連接可以擁有迴圈。網路式資料庫模型的兩種基本型態,如下所示:• 記錄型態( Record Type ):記錄型態是由一組屬性所組成,每一個記錄型態的成員稱為記錄,資料是一組記錄的集合。

• 連接型態( Link Type ):它是連接兩個記錄型態的型態,屬於一對多關聯性( Relationship),這是從稱為「擁有者型態」( Owner Type)關聯到多個「成員型態」(Member Type)。

3-2-1 網路式資料庫模型 -資料結構 ( 說明 )

Page 14: 第 3 章   資料庫模型與處理架構

網路式資料庫模型是建立在兩種「集合結構」( Set Structures ),也就是一組記錄型態的記錄集合( A Set of Records )和一組連接型態的連接集合( A Set of Links ),如下圖所示:

3-2-1 網路式資料庫模型 -資料結構 ( 圖例 )

Page 15: 第 3 章   資料庫模型與處理架構

3-2-1 網路式資料庫模型 - 網路式資料庫

Page 16: 第 3 章   資料庫模型與處理架構

階層式資料庫模型( Hierarchical Database Model )類似網路式資料庫模型,只是使用樹狀結構來組織資料,記錄資料間是以父子關係來建立鏈結,子記錄只能擁有一個父記錄。

在 1960 年代後期階層式資料庫模型的資料庫管理系統非常的普遍,直到 1970 年代,最著名的階層式資料庫系統是 1968 年 IBM 公司開發的「 IMS 」( Information Management System ),這也是最早商用的資料庫管理系統。

3-2-2 階層式資料庫模型 - 說明 P. 3-8

Page 17: 第 3 章   資料庫模型與處理架構

階層式資料庫模型的資料結構一定擁有一個「樹根」( Root ),然後使用「父子關聯性」( Parent-child Relationships )來鏈結記錄集合,將資料建立成階層的樹狀結構。階層式模型也擁有兩種基本型態,如下所示:• 記錄型態( Record Type ):記錄型態是由一組欄位屬性組成。每一個記錄型態的成員稱為記錄,資料是一組記錄的集合。

• 父子關聯型態( Parent-child Relationship Type ):兩個記錄型態間的連接型態,屬於一對多關聯性( Relationship),這是從稱為「父記錄型態」( Parent Record Type)關聯到多個「子記錄型態」( Child Record Type)。

3-2-2 階層式資料庫模型 -資料結構 ( 說明 )

Page 18: 第 3 章   資料庫模型與處理架構

階層式資料庫模型是由多個記錄型態,然後使用父子關聯型態將它連接起來,如下圖所示:

3-2-2 階層式資料庫模型 -資料結構 ( 圖例 )

Page 19: 第 3 章   資料庫模型與處理架構

3-2-2 階層式資料庫模型 - 階層式資料庫

Page 20: 第 3 章   資料庫模型與處理架構

「物件導向式資料庫模型」( Object-Oriented Database Model )是在物件導向程式語言新增資料庫功能,換句話說,就是使用物件導向方式來模擬關聯式資料庫的功能,例如:在 C++ 和 Java物件導向程式語言新增全功能的資料庫程式設計能力。

物件導向式資料庫模型的主要目的是統一應用程式和資料庫開發的資料模型和語言環境,物件導向式資料庫模型讓程式設計和資料庫統一使用物件導向方式進行設計。

3-2-3 物件導向式資料庫模型 - 說明 P. 3-11

Page 21: 第 3 章   資料庫模型與處理架構

物件是物件導向技術的關鍵,它是電腦用來模擬現實生活的東西或事件,也是組成整個程式的元件。物件是資料與相關處理資料的程序和函數結合在一起的組合體,資料就是變數,程序和函數,其中程序與函數稱為方法,如下圖所示:

3-2-3 物件導向式資料庫模型 - 物件

Page 22: 第 3 章   資料庫模型與處理架構

狀態( State ):物件所有屬性( Attributes )目前的狀態值,屬性是儲存物件的狀態,可以簡單的只是一個布林值變數,也可能是另一個物件。• 例如:車子的車型、排氣量、色彩和自排或手排等屬性,以程式來說,也就是資料部分的變數。

行為( Behavior ):行為是物件可見部分提供的服務,也就是塑模所抽象化的操作,可以作什麼事,使用方法來實作行為。• 例如:車子可以發動、停車、加速和換擋等。

識別字( Identity ):識別字是用來識別不同的物件,每一個物件都擁有獨一無二的識別字。

3-2-3 物件導向式資料庫模型 - 物件特點

Page 23: 第 3 章   資料庫模型與處理架構

類別是一種分類,將擁有相同特性的物件集合歸類在同一類別,在前面我們建立摸擬各種車輛的Car 、 Car1 、 Car2 、 Car3…等物件,各物件擁有相同屬性和行為,只是狀態不同。

簡單的說,這些物件屬於同一類,反過來看,我們可以建立一個範本來建立這些物件,如同工廠依照藍圖製造車輛,這個範本就是類別,屬於同一類別的物件即該類別的「實例」( Instance )。

3-2-3 物件導向式資料庫模型 - 類別

Page 24: 第 3 章   資料庫模型與處理架構

繼承( Inheritance )是物件導向程式設計的重要觀念,繼承是宣告的類別繼承現存類別的部分或全部的成員資料和方法、新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法或資料。

3-2-3 物件導向式資料庫模型 -繼承

Page 25: 第 3 章   資料庫模型與處理架構

類別的繼承關係可以建立「類別架構」( Class Hierarchy ),如下圖所示:

3-2-3 物件導向式資料庫模型 - 類別架構

Page 26: 第 3 章   資料庫模型與處理架構

物件導向式資料庫( Object-oriented Database )使用物件導向式資料模型,以物件導向程式語言定義資料庫的結構,以 Java 語言來說就是類別( Class ),一個類別相當於關聯式資料庫的一個關聯表,例如:使用 Java 語言定義 Book 類別,如下所示:class Book { public String b_no; public String title; public float price; public Author getAuthor() { …… } public Publisher getPublisher() { …… }}

3-2-3 物件導向式資料庫模型 - 資料庫的類別

Page 27: 第 3 章   資料庫模型與處理架構

物件導向式資料庫是物件導向程式設計和資料庫技術的聯姻,如下圖所示:

3-2-3 物件導向式資料庫模型 - 資料庫圖例

Page 28: 第 3 章   資料庫模型與處理架構

「物件關聯式資料庫模型」( Object-relational Database Model )是一種結合物件導向式和關聯式資料庫模型,擴充關聯式資料庫模型的功能,所以其基本的觀念仍然是關聯式資料庫模型,只是新增結構化屬性( Structured Attributes ),能夠自行定義資料型態( User-defined Type )。

國際標準組織( International Standards Organization, ISO )在新版的標準 SQL 語言新增物件關聯式模型的觀念,稱為 SQL 99 或 SQL 3 ,在SQL:99 新增物件觀念,可以擴充資料型態儲存複雜的資料,但是仍相容於關聯式資料庫,也就是與舊版 SQL 語言相容。

3-2-4 物件關聯式資料庫模型 - 說明 P. 3-17

Page 29: 第 3 章   資料庫模型與處理架構

物件關聯式資料庫模型支援「巢狀關聯表」( Nested Relations ),也就是說,資料型態不只可以使用關聯式資料庫的基本型態,還可以使用自訂型態的物件,相當於是另一個關聯表。例如:在 Authors 關聯表新增名為 address 的新型態,如下圖所示:

3-2-4 物件關聯式資料庫模型 -巢狀關聯表

Page 30: 第 3 章   資料庫模型與處理架構

物件關聯式資料庫的關聯表和巢狀關聯表,如下圖所示:

3-2-4 物件關聯式資料庫模型 -物件關聯式資料庫

Page 31: 第 3 章   資料庫模型與處理架構

3-3-1 使用者數來區分 3-3-2 範圍來區分 3-3-3 位置來區分 3-3-4 資料庫模型來區分

3-3 資料庫系統的種類 P. 3-18

Page 32: 第 3 章   資料庫模型與處理架構

資料庫系統以使用者人數來區分可以分為單人使用和多人使用的資料庫系統,如下所示:• 單人使用( Single-user)。• 多人使用(Multi-user)。

3-3-1 使用者數來區分 P. 3-18

Page 33: 第 3 章   資料庫模型與處理架構

資料庫系統以使用範圍( Scope )區分,如下:• 桌上型( Desktop)。• 工作群組(Workgroup)。• 企業級( Enterprise)。

3-3-2 範圍來區分 P. 3-19

Page 34: 第 3 章   資料庫模型與處理架構

資料庫系統以位置來區分,資料庫系統的資料處理可能位在同一台主機或網路上的其他主機,如下所示:• 集中式資料處理( Centralized Data Processin

g)。• 分散式資料處理( Distributed Data Processin

g)。

3-3-3 位置來區分 P. 3-19

Page 35: 第 3 章   資料庫模型與處理架構

如果資料庫系統使用前述的資料庫模型來區分,資料庫系統可以依使用的資料庫模型進行分類,如下所示:• 網路式資料庫系統。• 階層式資料庫系統。• 關聯式資料庫系統。• 物件導向式資料庫系統。• 物件關聯式資料庫系統。

3-3-4 資料庫模型來區分 P. 3-20

Page 36: 第 3 章   資料庫模型與處理架構

「架構」( Architecture )這個名詞可以指單獨一台電腦設計,不過對於企業組織來說,通常是指整個公司組織電腦系統的配置,包含實際使用的電腦硬體種類、網路、配置的位置和使用的電腦運算方式。

資料庫系統架構可以分成兩種處理架構,如下所示:• 集中式處理架構( Centralized Processing Architecture

s)。• 分散式處理架構( Distributed Processing Architecture

s)。

3-4 架構的基礎 P. 3-20

Page 37: 第 3 章   資料庫模型與處理架構

在早期大型主機( Mainframe )時代,電腦系統主要是使用 IBM 公司開發的「系統網路架構」( Systems Network Architecture, SNA ),這種架構屬於集中式處理架構,擁有一台大型主機,使用多個終端機( Terminals )與主機溝通。

以資料庫系統來說,資料庫管理系統和作業系統都在同一台電腦執行,使用者透過終端機將資訊送到主機,例如:資料庫查詢指令,然後從主機取得回應結果,在終端機顯示的結果是由主機產生的資料,終端機只負責顯示取得的資料。

3-5 集中式處理架構 - 說明 P. 3-21

Page 38: 第 3 章   資料庫模型與處理架構

3-5 集中式處理架構 - 圖例

Page 39: 第 3 章   資料庫模型與處理架構

資料庫系統分成使用者的前台( Frontends )和資料庫的後台( Backends ),分別分散執行所需的工作,如下所示:• 前台( Frontend ):使用者執行的應用程式,用來執行資料庫查詢等資料處理,然後顯示執行的結果。

• 後台( Backend ):執行資料處理的資料庫管理系統。

3-6 分散式處理架構 - 前後台 P. 3-22

Page 40: 第 3 章   資料庫模型與處理架構

3-6 分散式處理架構 - 前後台圖例

Page 41: 第 3 章   資料庫模型與處理架構

檔案分享架構( File Sharing Architecture )並不是一種主從架構,它是主從架構的前身,早期個人電腦網路都是採用檔案分享架構,主機扮演的角色單純只是檔案伺服器( File Server )。

客戶端向檔案伺服器請求資料檔案,然後將檔案下載到客戶端,然後在客戶端電腦啟動資料庫管理系統執行資料處理,真正執行資料處理是在客戶端的個人電腦或工作站,檔案伺服器只是儲存和管理檔案,稱為檔案伺服器模型( File Server Model )。

3-6-1 檔案分享架構 - 說明 P. 3-23

Page 42: 第 3 章   資料庫模型與處理架構

3-6-1 檔案分享架構 - 圖例

Page 43: 第 3 章   資料庫模型與處理架構

主從架構的電腦本身並沒有分別,只是扮演不同的角色,分為伺服端( Server )和客戶端( Client ),如下所示:• 伺服端( Server ):在主從架構中扮演提供服務

( Service)的提供者( Provider)角色。• 客戶端( Client ):在主從架構中的角色是提出服務請求( Request)的請求者( Requester)。

3-6-2 主從架構的基礎 - 說明 P. 3-24

Page 44: 第 3 章   資料庫模型與處理架構

3-6-2 主從架構的基礎 - 圖例

Page 45: 第 3 章   資料庫模型與處理架構

標準主從架構是二層式主從架構( Two-Tier Client/Server Architecture )。

二層式主從架構可以分成兩部分,如下:• 展示層( Presentation Tier ):與使用者互動的使用介面,這是實際使用者看到的應用程式,同時負責商業邏輯( Business Logic)和資料處理邏輯( Data Processing Logic)。

• 資料層( Data Tier ):負責資料的儲存,以資料庫系統來說,就是管理資料庫的資料庫管理系統。

3-6-3 二層式主從架構 - 說明 P. 3-25

Page 46: 第 3 章   資料庫模型與處理架構

3-6-3 二層式主從架構 - 圖例

Page 47: 第 3 章   資料庫模型與處理架構

更改商業和資料處理邏輯就需要重新修改、編譯和安裝展示層應用程式。

二層式主從架構只傳遞回應資料,但是真正的資料處理是在展示層應用程式,所需的資料仍然需要從資料層傳送到展示層,增加區域網路負載。

在從端的每一個展示層應用程式都需要獨立的資料庫連結,並且保持連線狀態,而區域網路最多只能支援大約 100人同時建立資料庫連結。

複雜客戶端( Flat Client )應用程式的程式碼是使用特定資料庫管理系統的函式庫,如果資料層改用其他廠商的資料庫管理系統,同時也需要修改展示層應用程式的程式碼。

3-6-3 二層式主從架構 -缺點

Page 48: 第 3 章   資料庫模型與處理架構

擴充二層式主從架構,在之間新增一層「商業邏輯層」( Business Logic Tier ),就成為「三層式主從架構」( Three-Tier Client/Server Architecture ),將二層式主從架構展示層的資料處理和商業邏輯功能獨立成「應用程式伺服器」( Application Server )。

應用程式伺服器( Application Server )如同餐廳中超高效率的服務生,從展示層的前台取得點選的套餐,將它送到後台的資料庫伺服器取得所需的各種餐點,在處理後,送到前台的是一套完整組合的套餐。

3-6-4 三層式主從架構 - 說明 P. 3-27

Page 49: 第 3 章   資料庫模型與處理架構

3-6-4 三層式主從架構 - 圖例

Page 50: 第 3 章   資料庫模型與處理架構

清楚切割使用介面的展示層和商業邏輯層的資料處理與商業邏輯,如此可以重複使用資料處理和商業邏輯的現成軟體元件,加速應用程式的開發。

集中管理和維護商業邏輯,如有更改,只需更改商業邏輯層的應用程式伺服器,而不用更改展示層的應用程式。

更改資料層的資料庫管理系統,同樣不會影響展示層的應用程式。

商業邏輯層和資料層的實際架構可以位在同一台電腦伺服器,或是不同電腦使用高速網路連接,如此可以解決網路資料傳遞的頻寬問題。

3-6-4 三層式主從架構 -優點

Page 51: 第 3 章   資料庫模型與處理架構

多層架構( N-Tier Architecture )是將三層式主從架構進行再次的擴充, N表示分割成 3 、 4 或 5等層,需視資料庫系統架構的需求來進行分割。

多層架構是將三層式架構的商業邏輯層架構再次分割成獨立軟體元件的多個應用程式伺服器,事實上,三層式架構可視為一種最基本的多層架構。

3-6-5 多層架構 - 說明 P. 3-29

Page 52: 第 3 章   資料庫模型與處理架構

3-6-5 多層架構 - 網頁資料庫圖例

Page 53: 第 3 章   資料庫模型與處理架構

「中介軟體」( Middleware )是一種軟體用來整合不同應用程式,以便各應用程式可以使用標準方式進行連結和資料的交換。

換句話說,中介軟體可以隱藏背後實際執行的應用程式,只需透過中介軟體就可以進行與其他應用程式的通訊和資料交換。

3-7 中介軟體 P. 3-31

Page 54: 第 3 章   資料庫模型與處理架構

以資料庫系統架構來說,中介軟體在二層式主從架構是連接前台和後台的軟體程式,在三層式主從架構是用來連接商業邏輯層和資料層的資料庫管理系統。

中介軟體的主要的目的是簡化資料庫應用程式的開發,因為資料庫管理系統的種類繁多且支援多種作業系統,各家廠商都擁有專屬函式庫呼叫來進行通訊和資料交換。

3-7-1 資料庫系統的中介軟體 - 說明 P. 3-31

Page 55: 第 3 章   資料庫模型與處理架構

3-7-1 資料庫系統的中介軟體 -沒有使用中介軟體

Page 56: 第 3 章   資料庫模型與處理架構

3-7-1 資料庫系統的中介軟體 - 使用中介軟體

Page 57: 第 3 章   資料庫模型與處理架構

微軟主導的資料庫中介軟體有兩種:• ODBC。• OLE DB。

OLE DB 和 ODBC 的主要差異是 OLE DB 資料來源並不限於關聯式資料庫,它也可以使用在非關聯式資料庫、試算表或文字檔案等其他資料來源。

3-7-2 微軟的中介軟體 - 說明 P. 3-32

Page 58: 第 3 章   資料庫模型與處理架構

昇陽公司提出的資料庫中介軟體是「 JDBC 」( Java Database Connectivity )是一種開放標準的 Java 程式介面,可以讓 Java 程式連結資料庫管理系統。

以 Java 程式語言來說,這是一個實作 JDBC驅動程式介面( JDBC Driver Interface )的類別,即JDBC API , JDBC驅動程式介面主要分為兩類:• 透過其他中介軟體作為另一種中介軟體的橋樑。• JDBC驅動程式介面可以直接連接資料庫管理系統。

3-7-3 昇陽的 JDBC- 說明 P. 3-35

Page 59: 第 3 章   資料庫模型與處理架構

雖然資料庫系統使用分散式處理架構,但是資料庫伺服器仍然只有一個,資料庫的資料是集中儲存在一個地方,稱為「集中式資料庫系統」( Centralized Database System )。

集中式資料庫系統雖然方便資料管理,但是單一伺服器如果發生當機,就會影響到整個公司的營運,對於大型公司或組織而言,並不符合其需求。

如果在全世界各地都擁有分公司,存取資料庫就需要負擔昂貴的通訊成本和造成執行效率的降低,為了解決上述問題,於是發展出「分散式資料庫系統」( Distributed Database System )。

3-8 分散式資料庫系統 - 說明 P. 3-36

Page 60: 第 3 章   資料庫模型與處理架構

3-8 分散式資料庫系統 - 圖例

Page 61: 第 3 章   資料庫模型與處理架構

「分散式資料庫」( Distributed Database, DDB ):指資料在邏輯上屬於同一個資料庫系統,不過事實上,實際的資料是分散儲存在以網路連接的不同資料庫伺服器上。

「分散式資料庫管理系統」( Distributed Database Management System, DDBMS ):管理分散式資料庫的軟體,提供資料的分散儲存,但是使用者並不會認為它是在存取分散儲存的資料,對於使用者來說,仍然是一個完整的資料庫,如此稱為「透通性」( Transparent )。

3-8-1 分散式資料庫系統的基礎 - 說明 P. 3-37

Page 62: 第 3 章   資料庫模型與處理架構

最基本的分散式資料庫系統架構是使用主從架構,它是由多個站( Sites )或稱為點( Nodes )所組成,使用通訊網路( Communication Network )連接,可以使用區域網路( Local Area Network )或廣域網路( Wide Area Network )。

分散式資料庫系統分成 1~N 個站,有些站的角色是客戶端(從端),有些站是伺服器(主端),有些站同時擁有客戶和伺服器,資料庫分散置於擁有伺服器的各站。

3-8-1 分散式資料庫系統的基礎 - 架構

Page 63: 第 3 章   資料庫模型與處理架構

3-8-1 分散式資料庫系統的基礎 - 圖例

Page 64: 第 3 章   資料庫模型與處理架構

增加資料庫系統的執行效能:在最近的地方就可以取得所需的資料。

提高可靠性( Reliability )和可用性( Availability ):就算有些伺服器當機或出現網路問題,分散式資料庫系統仍然擁有足夠的妥善率,而不會影響整個資料庫系統的運作。

更多的彈性和擴充性:因為資料是分散儲存在多台伺服器,不論擴充與重新配置資料庫伺服器的彈性都比較高。

分享與區域自主性( Local Autonomy ):資料庫伺服器的資料可以分享,也可以只讓區域的使用者存取。

3-8-2 分散式資料庫系統的優缺點 -優點 P. 3-39

Page 65: 第 3 章   資料庫模型與處理架構

系統複雜:資料是分散儲存在各地的伺服器,所以分散式資料庫系統的複雜度相當高。

成本高昂:相關應用程式的開發成本隨著分散程度而提高。

維護不易:分散式資料庫系統維護不易,容易產生資料安全與整合問題。

缺乏標準:目前並沒有分散式資料庫系統的官方標準。

3-8-2 分散式資料庫系統的優缺點 -缺點

Page 66: 第 3 章   資料庫模型與處理架構

同質分散式資料庫系統( Homogeneous Distributed Database System )• 指所有資料庫伺服器都採用相同的資料庫管理系統,使用相同的資料庫模型和資料操作方式。

異質分散式資料庫系統( Heterogeneous Distributed Database System )• 指資料庫伺服器使用不同的資料庫管理系統,例如:同時使用 SQL Server 和 Oracle,此時需要考量不同資料庫管理系統和不同格式資料間的整合問題。

3-8-3 分散式資料庫系統的種類 P. 3-39

Page 67: 第 3 章   資料庫模型與處理架構

「資料分割」( Data Fragmentation )是分割資料庫的資料成為一個個片斷( Fragment ),以便將各片斷分散儲存在其他資料庫伺服器,其中每一個片斷是資料庫的一個較小的邏輯單位。

以分散式關聯式資料庫為例,各資料庫只會儲存關聯表的部分片斷,其分割方式有水平方向的水平分割和垂直方向的垂直分割。

3-8-4 資料分割 - 說明 P. 3-40

Page 68: 第 3 章   資料庫模型與處理架構

水平分割( Horizontal Fragmentation )水平分割以關聯式資料庫為例,就是將關聯表以

值組的列為分割單位,分割成更小的邏輯單位。

3-8-4 資料分割 -水平分割

Page 69: 第 3 章   資料庫模型與處理架構

垂直分割( Vertical Fragmentation )垂直分割以關聯式資料庫為例,就是將關聯表以

屬性的欄為分割單位,分割成更小的邏輯單位。

3-8-4 資料分割 -垂直分割

Page 70: 第 3 章   資料庫模型與處理架構

資料複寫( Data Replication )是分散式資料庫系統的重要特點,複寫( Replication )是建立資料庫的備份,其中原始資料庫稱為主資料庫( Master ),複寫的資料庫稱為拷貝資料庫( Replica ),在主資料庫和拷貝資料庫之間需要定時進行同步更新,以保持各資料庫儲存資料的一致性。

在分散式資料庫系統使用複寫的方式分為三種:• 沒有複寫( No Replication)• 完全複寫( Complete Replication)• 部分複寫( Partial Replication)

3-8-5 資料複寫 - 說明 P. 3-42

Page 71: 第 3 章   資料庫模型與處理架構

3-8-5 資料複寫 - 圖例

Page 72: 第 3 章   資料庫模型與處理架構