第3章 資料庫模型與處理架構 3-1 資料模型的基礎 3-6 分散式處理架構 實體關聯模型(E-R Model)

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

数据库原理及应用(ORACLE)实用教程
An Introduction to Database System
第 15 章 資料庫系統.
第1章 資料庫系統 1-1 資料庫系統的基礎 1-2 三層資料庫系統架構 1-3 資料庫綱要 1-4 資料庫管理系統 1-5 資料庫管理師
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
第8章 系統架構.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
数据库原理与应用     制作人:王春玲         黄金燕         张惠萍         陈志泊 人民邮电出版社.
第一章 資料庫系統基本觀念.
Topics 應用架構 學習路徑 熱門議題 相關認證.
主題五 CPU Learning Lab.
Database System 授課教師: 姚志佳.
歐陽芳泉 清雲科技大學資訊管理系 第1章 資料處理與資料庫 歐陽芳泉 清雲科技大學資訊管理系.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
LINQ 建國科技大學 資管系 饒瑞佶.
Java簡介.
Chapter 1 Introduction.
本 章 重 點 12-1 資料庫管理系統的基礎概念 12-2 SQL(Structured Query Language)語法簡介
TCP協定 (傳輸層).
連結資料庫 ACCESS MSSQL.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第1章 認識Arduino.
Chap 3 資料庫模型與處理架構.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
第二章 Linux基本指令與工具操作 LINUX 按圖施工手冊.
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
Working with Databases (II) 靜宜大學資管系 楊子青
資料庫操作.
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
類別(class) 類別class與物件object.
無線射頻識別系統(RFID) 基本原理及發展與應用
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
資料庫系統導論.
OpenID與WordPress使用說明
連結資料庫管理系統.
管理資訊系統導論 資訊系統的定義與概念.
Java 程式設計 講師:FrankLin.
FTP檔案上傳下載 實務與運用.
網際網路與電腦應用 林偉川 2001/11/08.
指導老師:黃貞芬 老師 專題組員:B 黃育宇 B 魏志軒 B 平震宇
Chap3 Linked List 鏈結串列.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
第一單元 建立java 程式.
TB-054A  周天穎 編著 儒林圖書公司 發行.
CH03 行銷資訊系統資料庫模組--資料庫概論
第 19 章 XML記憶體執行模式.
表格(HTML – FORM).
其他 ER 相關觀念 以及OO模型 國立中央大學 資訊管理系 范錚強 2002 中央大學。范錚強.
主從式資料庫架構 臺北大學統計系 莊東穎.
從 ER 到 Logical Schema ──兼談Schema Integration
Google協作平台+檔案分享(FileZilla+網路芳鄰)
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝與登入
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
MicroSim pspice.
基本指令.
第 4 章 認識 SQL 語言與資料型別.
Cloud Operating System - Unit 03: 雲端平台建構實驗
第四章 通訊與網路管理 授課老師:褚麗絹.
資料表示方法 資料儲存單位.
MultiThread Introduction
資料擷取與監控應用實務.
連結資料庫 MYSQL.
多站台網路預約系統之 AJAX即時資料更新機制
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
第 1 章 認識資料庫系統.
InputStreamReader Console Scanner
Presentation transcript:

第3章 資料庫模型與處理架構 3-1 資料模型的基礎 3-6 分散式處理架構 實體關聯模型(E-R Model) 第3章 資料庫模型與處理架構 3-1 資料模型的基礎 實體關聯模型(E-R Model) 實體資料模型(Physical Data Model) 3-2 資料庫模型 關聯式資料庫模型 網路式資料庫模型 階層式資料庫模型 物件關聯式資料庫模型 物件導向式資料庫模型 3-3 資料庫系統的種類 3-4 架構的基礎 集中式處理架構 分散式處理架構 3-5 集中式處理架構 3-6 分散式處理架構 二層式及三層式主從資料庫架構 3-7 中介軟體 ODBC OLE DB JDBC 3-8 分散式資料庫系統 透通性(Transparent) 同質、異質分散式資料庫系統 水平分割、垂直分割 資料複寫 資料庫(DB) ch03

3-1 資料模型的基礎-說明 資料模型(Data Model): 資料模型分為3種: 使用一組整合觀念來描述資料、資料間的關係和資料的限制條件(是否是正確資料),即描述資料庫資料的特性 描述資料庫的內容、結構以及其使用方式,為資料庫系統的核心 資料模型分為3種: 概念資料模型 邏輯資料模型 實體資料模型 資料庫(DB) ch03

3-1 資料模型的基礎-圖例 資料庫(DB) ch03

3-1 資料模型的基礎-圖例說明1 概念資料模型: 邏輯資料模型: 實體資料模型: 與資料庫管理系統無關 沒有使用特定資料庫種類來建立資料模型 概念方式描述大多數使用者認知的資料 邏輯資料模型: 使用特定資料庫種類建立的資料模型 例如:關聯式資料模型 ANSI/SPARC三層資料庫架構,位在概念層以上的概念和外部層資料 實體資料模型: 描述ANSI/SPARC三層資料庫架構的內部層資料 資料庫(DB) ch03

3-1 資料模型的基礎-圖例說明2 概念資料庫設計(Conceptual Database Design): 沒有使用特定資料庫種類建立的概念綱要 邏輯資料庫設計(Logical Database Design): 在概念綱要以上的資料庫設計 將概念資料模型轉換成邏輯資料模型的過程 實體資料庫設計(Physical Database Design): 內部綱要的資料庫設計 將邏輯資料模型轉換成以關聯式資料庫為例的SQL指令敘述來定義資料庫 資料庫(DB) ch03

3-1-1 概念資料模型-原因 建立概念資料模型的原因: 能夠進一步了解資料範圍 增加與最終使用者的溝通機會 開發與資料庫管理系統無關的資料模型 儘早發現資料庫設計的錯誤 資料庫(DB) ch03

3-1-1 概念資料模型-說明 實體關聯模型(Entity-Relationship Model,簡稱E-R Model) : 概念資料模型最常使用實體關聯模型 以圖形方式建立,稱為實體關聯圖(Entity-Relationship Diagram) 1976年由Peter Chen提出 真實世界中實體和關聯是最自然的模型化觀念 實體關聯模型的基礎是建構在實體和關聯性之上 資料庫(DB) ch03

3-1-1 概念資料模型-圖例 資料庫(DB) ch03

資料模型範例 客戶 像鳥爪的符號表示多的一方 產品生產線 訂單 產品 訂單明細 發票 付款 資料庫(DB) ch03

3-1-2 邏輯資料模型-元素 第一個邏輯資料模型(Logical Data Model): 關聯式模型(Relational Model) 關聯式資料庫模型(Relational Database Model): E. F. Codd在1970年提出 邏輯資料模型3種元素組成: 資料結構(Data Structures): 資料的組成方式 以關聯式資料庫模型來說,就是欄和列組成的表格 資料操作或運算(Data Manipulation或Operations): 資料的相關操作。例如:新增、刪除、更新和查詢 完整性限制條件(Integrity Constraints): 維護資料完整性的限制條件 目的是確保資料是合法的資料 資料庫(DB) ch03

3-1-2 邏輯資料模型-圖例 資料庫(DB) ch03

3-1-3 實體資料模型-說明 實體資料模型(Physical Data Model): 針對指定資料庫管理系統建立實際架構的模型 資料模型可顯示資料是如何實作和儲存在資料庫 資料庫(DB) ch03

3-1-3 實體資料模型-圖例 資料庫(DB) ch03

3-1-2 邏輯資料模型-說明 資料庫系統演進,主要有4種邏輯資料模型: 網路式資料庫模型(Network Databse Model) 階層式資料庫模型(Hierarchical Database Model) 關聯式資料庫模型(Relational Database Model) 物件導向式資料庫模型(Object-Oriented Database Model) 資料庫(DB) ch03

3-2-1 網路式資料庫模型-說明 網路式資料庫模型(Network Database Model) : 和階層式資料庫系統約在同一個年代開發 早於關聯式資料庫系統 網路式資料庫模型是在關聯式資料庫模型後才出現的資料模型 先有網路式資料庫系統,而後才訂出網路式資料模式(型) 資料模型採網路圖形來連結資料,資料間連接可擁有迴圈 支援多對多關聯性(Relationship) DBTG模型 1971年CODASYL DBTG(Conference on Data Systems Languages Database Task Group)組織所提出 資料庫(DB) ch03

3-2-1 網路式資料庫模型-資料結構(說明) 網路式資料庫模型2種基本型態: 記錄型態(Record Type): 由一組屬性所組成 每一個記錄型態的成員稱為記錄,資料是一組記錄的集合 連接型態(Link Type): 連接兩個記錄型態的型態,屬於一對多關聯性(Relationship) 從擁有者型態(Owner Type)關聯到多個成員型態(Member Type) 資料庫(DB) ch03

3-2-1 網路式資料庫模型-資料結構(圖例) 網路式資料庫模型 2種集合結構(Set Structures): 一組記錄型態的記錄集合(A Set of Records) 一組連接型態的連接集合(A Set of Links) owner 一個孩子節點可以有數個父親結點 member 資料庫(DB) ch03

3-2-1 網路式資料庫模型-網路式資料庫 資料庫(DB) ch03

Publisher 和bookstore 的關係是 N:M 網路式資料模式 -資料結構圖示 owner owner Bookstore 書局 Publisher 出版社 P-b Set b-b Set Book 書籍 member member Publisher 和bookstore 的關係是 N:M 資料庫(DB) ch03

網路式資料模式的範例 資料庫系統 東方書局 華泰出版社 程式語言 資訊科技 儒林出版社 美美書局 作業系統 資料庫(DB) ch03

網路式資料模式的特點 網路式資料模式的特點: 允許一個member有多個owner 相當於每個子節點有多個父節點 適合多對多的關係 member與owner間是固定的link 關係 處理速度快速 缺點:缺乏彈性 無統一標準 各廠商的網路資料庫系統不相容 資料庫(DB) ch03

3-2-2 階層式資料庫模型-說明 階層式資料庫模型(Hierarchical Database Model): 用樹狀結構來組織資料 記錄資料間以父子關係來建立鏈結 子記錄只能擁有一個父記錄 IMS(Information Management System): 最著名的階層式資料庫系統 1968年IBM公司開發,是最早商用的資料庫管理系統 注意: 先有階層式的資料庫系統 而後才有階層式的資料模式 資料庫(DB) ch03

3-2-2 階層式資料庫模型-資料結構(說明) 階層式資料庫模型的資料結構: 一定擁有一個樹根(Root) 使用父子關聯性(Parent-child Relationships) 來鏈結記錄集合,將資料建立成階層的樹狀結構 完整順序是依內部節點由上至下、由左至右來定義 資料庫(DB) ch03

階層式資料模式-資料結構圖示 B D E F A C I G H J K Parent Segment = Record type Root Segment Level 1 Segment B D E F A C I G H J K Parent Child Level 2 Segment Level 3 Segment Segment = Record type 資料庫(DB) ch03

階層式資料模式-資料讀取路徑 Hierarchical path (階層式路徑): 1 2 3 4 5 6 7 1 2 3 4 5 6 7 ordered sequencing of segment tracing the Hierarchical structure 追蹤階層架構資料的順序: 稱為left-list path、preorder traversal、Hierarchic sequence 右圖的Hierarchical path 為: 1,2,4,5,3,6,7 例如:追蹤上一頁的 Segment K 路徑 Hierarchical path為 A B D I E F J K 常被存取的Segment 應放在tree 的 left side 1 2 3 4 5 6 7 1 2 3 4 5 6 7 資料庫(DB) ch03

階層式模型的兩種基本型態 階層式模型有2種基本型態: 記錄型態(Record Type): 由一組欄位屬性組成 每一個記錄型態的成員稱為記錄,資料是一組記錄的集合 父子關聯型態(Parent-child Relationship Type): 兩個記錄型態間的連接型態 屬於一對多關聯性(Relationship) 從父記錄型態(Parent Record Type)關聯到多個子記錄型態(Child Record Type) 資料庫(DB) ch03

3-2-2 階層式資料庫模型-資料結構(圖例) 階層式資料庫模型: 多個記錄型態使用父子關聯型態連接 資料庫(DB) ch03

3-2-2 階層式資料庫模型-階層式資料庫 資料庫(DB) ch03

3-2-2 階層式資料庫模型-多對多關聯性1 多對多關聯性階層式資料庫模型可重複記錄型態: 資料庫(DB) ch03

3-2-2 階層式資料庫模型-多對多關聯性2 虛擬記錄型態(Virtual Record Type)的記錄: 只是一個指標,指向其他記錄型態的記錄 資料庫(DB) ch03

階層式資料模式的特點 階層式資料模式的特點: 適合用來描述一對多的關係( 1 : M relationship ): Each parent can have many children, but each child has only one parent 每對父母可有許多小孩,但每個小孩只有一對父母 每個子節點只有一個父節點 子節點與父節點間以 link 做連接,處理速度快 子節點與父節點間的 link 關係為固定的, 也造成缺乏彈性 刪除一個父節點 使得其底下的所有子節點亦會全數刪除, 造成維護上困難 程式撰寫較不易,因為必須熟悉資料架構 只做到data independency , 沒做到 structure independency 很難處理 N : M 的關係(不適合多對多) 資料庫(DB) ch03

階層式資料模式的錯誤範例 Product 產品 Order-line 訂單明細 Customer 客戶 Order 訂單 不可有二個 parent 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-說明 物件導向式資料庫模型(Object-Oriented Database Model): 物件導向程式語言新增資料庫功能 使用物件導向方式來模擬關聯式資料庫的功能 例如: 在C++和Java物件導向程式語言新增全功能的資料庫程式設計能力 物件導向式資料庫模型的主要目的: 統一應用程式和資料庫開發的資料模型和語言環境 物件導向式資料庫模型讓程式設計和資料庫統一使用物件導向方式進行設計 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-物件 物件: 物件導向技術的關鍵 電腦用來模擬現實生活的東西或事件,也是組成整個程式的元件 物件是資料與相關處理資料的程序和函數結合的組合體 資料就是變數,其中程序與函數稱為方法 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-物件特點 狀態(State): 行為(Behavior): 識別字(Identity): 物件所有屬性(Attributes)目前的狀態值 屬性用來儲存物件的狀態,可以是一個布林值變數,也可能是另一個物件 例如:車子的車型、排氣量、色彩和自排或手排等屬性 以程式來說,也就是資料部分的變數 行為(Behavior): 物件可見部分提供的服務,也就是塑模所抽象化的操作 可以作什麼事,使用方法來實作行為 例如:車子可以發動、停車、加速和換擋等 識別字(Identity): 用來識別不同的物件,每一個物件都擁有獨一無二的識別字 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-類別 類別(class): 一種分類,將擁有相同特性的物件集合歸類在同一類別 建立摸擬各種車輛的Car、Car1、Car2、Car3…等物件,各物件擁有相同屬性和行為,只是狀態不同 簡單的說,這些物件屬於同一類 反過來看,建立一個範本來建立這些物件 如同工廠依照藍圖製造車輛,這個範本就是類別 屬於同一類別的物件即該類別的實例(Instance) 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-繼承 繼承(Inheritance): 物件導向程式設計的重要觀念 繼承 宣告的類別 繼承現存類別的部分或全部的成員資料和方法 新增額外的成員資料和方法 覆寫和隱藏繼承類別的方法或資料 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-類別架構 類別架構(Class Hierarchy): 類別的繼承關係 Truck、Car和Motorcycle是兄弟類別 Vehicle類別:是Car的父類別 Car類別繼承自Vehicle類別 Car類別:是Vehicle的子類別 資料庫(DB) ch03

3-2-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() { …… } } 資料庫(DB) ch03

3-2-3 物件導向式資料庫模型-資料庫圖例 物件導向式資料庫: 是物件導向程式設計和資料庫技術的聯姻: 資料庫(DB) ch03

3-2-4 物件關聯式資料庫模型-說明 物件關聯式資料庫模型(Object-relational Database Model): 結合物件導向式和關聯式資料庫模型 擴充關聯式資料庫模型的功能 基本的觀念仍是關聯式資料庫模型 只是新增結構化屬性(Structured Attributes),能夠自行定義資料型態(User-defined Type) SQL 99或SQL 3: 國際標準組織(International Standards Organization, ISO) 在新版的標準SQL語言新增物件關聯式模型的觀念,稱為SQL 99或SQL 3 SQL 99 : 新增物件觀念 可擴充資料型態儲存複雜的資料 但仍相容於關聯式資料庫,也就是與舊版SQL語言相容 資料庫(DB) ch03

3-2-4 物件關聯式資料庫模型-巢狀關聯表 物件關聯式資料庫模型: 支援巢狀關聯表(Nested Relations ) 資料型態不只可使用關聯式資料庫的基本型態,還可使用自訂型態的物件,相當於另一個關聯表 例如:Authors關聯表新增名為address的新型態 資料庫(DB) ch03

3-2-4 物件關聯式資料庫模型-物件關聯式資料庫 物件關聯式資料庫的關聯表和巢狀關聯表: 資料庫(DB) ch03

3-3-1 使用者人數、使用範圍來區分 資料庫系統以使用者人數區分: 資料庫系統以使用範圍(Scope)區分: 單人使用(Single-user) 多人使用(Multi-user) 資料庫系統以使用範圍(Scope)區分: 桌上型(Desktop) 工作群組(Workgroup) 企業級(Enterprise) 資料庫(DB) ch03

3-3-3 位置、資料庫模型來區分 資料庫系統以位置來區分: 資料庫系統使用資料庫模型來區分: 集中式資料處理(Centralized Data Processing) 分散式資料處理(Distributed Data Processing) 資料庫系統使用資料庫模型來區分: 網路式資料庫系統 階層式資料庫系統 關聯式資料庫系統 物件導向式資料庫系統 物件關聯式資料庫系統 資料庫(DB) ch03

3-4 架構的基礎 架構(Architecture): 資料庫系統架構分成2 種處理架構: 可指單獨一台電腦設計 對於企業組織,通常指整個公司組織電腦系統的配置 包含實際使用的電腦硬體種類、網路、配置的位置和使用的電腦運算方式 資料庫系統架構分成2 種處理架構: 集中式處理架構(Centralized Processing Architectures) 分散式處理架構(Distributed Processing Architectures) 資料庫(DB) ch03

3-5 集中式處理架構-說明 集中式處理架構: 擁有一台大型主機,使用多個終端機(Terminals)與主機溝通 大型主機(Mainframe)時代 電腦系統主要使用IBM公司開發的系統網路架構(Systems Network Architecture, SNA) 以資料庫系統來說 資料庫管理系統和作業系統都在同一台電腦執行 使用者透過終端機將資訊送到主機 例如: 資料庫查詢指令 從主機取得回應結果在終端機顯示 終端機只負責顯示取得的資料 資料庫(DB) ch03

3-5 集中式處理架構-圖例 資料庫(DB) ch03

3-6 分散式處理架構-前後台 分散式處理架構: 資料庫系統分成: 前台(Frontend): 使用者執行的應用程式 執行資料庫查詢等資料處理,顯示執行的結果 後台(Backend): 執行資料處理的資料庫管理系統 資料庫(DB) ch03

3-6 分散式處理架構-前後台圖例 資料庫(DB) ch03

3-6-1 檔案分享架構-說明 檔案分享架構(File Sharing Architecture): 不是一種主從架構 主從架構的前身,早期個人電腦網路都是採用檔案分享架構 主機扮演的角色只是檔案伺服器(File Server) 客戶端向檔案伺服器請求資料檔案,將檔案下載到客戶端 客戶端電腦啟動資料庫管理系統執行資料處理 真正執行資料處理是在客戶端的個人電腦或工作站 檔案伺服器只是儲存和管理檔案,稱為檔案伺服器模型(File Server Model) 資料庫(DB) ch03

3-6-1 檔案分享架構-圖例 資料庫(DB) ch03

3-6-2 主從架構的基礎-說明 主從架構的電腦本身並沒有分別,只是扮演不同的角色,分別為: 伺服端(Server): 在主從架構扮演提供服務(Service)的提供者(Provider)角色 客戶端(Client): 在主從架構扮演提出服務請求(Request)的請求者(Requester) 資料庫(DB) ch03

3-6-2 主從架構的基礎-圖例 資料庫(DB) ch03

3-6-3 二層式主從架構-說明 二層式主從架構(Two-Tier Client/Server Architecture): 標準的主從架構 分成兩部分: 展示層(Presentation Tier): 與使用者互動的使用介面 實際使用者看到的應用程式 同時負責商業邏輯(Business Logic)和資料處理邏輯(Data Processing Logic) 資料層(Data Tier): 負責資料的儲存 以資料庫系統來說,就是管理資料庫的資料庫管理系統 資料庫(DB) ch03

3-6-3 二層式主從架構-圖例 資料庫(DB) ch03

3-6-3 二層式主從架構-缺點 展示層應用程式常異動: 更改商業和資料處理邏輯 就需要重新修改、編譯和安裝展示層應用程式 增加區域網路負載: 二層式主從架構只傳遞回應資料 真正的資料處理是在展示層應用程式,所需的資料仍需要從資料層傳送到展示層,增加區域網路負載 支援同時資料庫連結數有限: 在從端的每一個展示層應用程式都需要獨立的資料庫連結,並保持連線狀態 而區域網路最多只能支援大約100人同時建立資料庫連結 使用特定資料庫管理系統的函式庫: 複雜客戶端(Flat Client)應用程式的程式碼是使用特定資料庫管理系統的函式庫 如果資料層改用其他廠商的資料庫管理系統,同時也需要修改展示層應用程式的程式碼 資料庫(DB) ch03

3-6-4 三層式主從架構-說明 三層式主從架構(Three-Tier Client/Server Architecture): 擴充二層式主從架構,在之間新增一層商業邏輯層(Business Logic Tier) 將二層式主從架構展示層的資料處理和商業邏輯功能獨立成應用程式伺服器(Application Server) 應用程式伺服器(Application Server): 從展示層的前台取得資料,送到後台的資料庫伺服器取得所需的各種資訊,處理後再送到前台 資料庫(DB) ch03

3-6-4 三層式主從架構-圖例 資料庫(DB) ch03

三層式主從資料庫架構(fig. 2-11) 資料庫(DB) ch03

3-6-4 三層式主從架構-優點 清楚切割使用介面的展示層和商業邏輯層的資料處理與商業邏輯: 可重複使用資料處理和商業邏輯的現成軟體元件,加速應用程式的開發 集中管理和維護商業邏輯: 如有更改,只需更改商業邏輯層的應用程式伺服器,而不用更改展示層的應用程式 更改資料層的資料庫管理系統,不會影響展示層的應用程式 解決網路資料傳遞的頻寬問題: 商業邏輯層和資料層的實際架構可以位在同一台電腦伺服器,或不同電腦使用高速網路連接,可解決網路資料傳遞的頻寬問題 資料庫(DB) ch03

3-6-5 多層架構-說明 多層架構(N-Tier Architecture): 將三層式主從架構進行再次的擴充,N表示分割成3、4或5等層 將三層式架構的商業邏輯層架構再次分割成獨立軟體元件的多個應用程式伺服器 三層式架構可視為一種最基本的多層架構 資料庫(DB) ch03

3-6-5 多層架構-網頁資料庫圖例 Web server ASP、JSP、PHP ODBC、JDBC 資料庫(DB) ch03

3-7 中介軟體 中介軟體(Middleware): 一種軟體用來整合不同應用程式 以便各應用程式可使用標準方式進行連結和資料的交換 中介軟體可隱藏背後實際執行的應用程式 只需透過中介軟體就可進行與其他應用程式的通訊和資料交換 資料庫(DB) ch03

3-7-1 資料庫系統的中介軟體-說明 中介軟體在資料庫系統架構: 中介軟體的主要的目的: 中介軟體在二層式主從架構是連接前台和後台的軟體程式 中介軟體在三層式主從架構是用來連接商業邏輯層和資料層的資料庫管理系統 中介軟體的主要的目的: 簡化資料庫應用程式的開發 資料庫管理系統的種類繁多且支援多種作業系統,各家廠商都擁有專屬函式庫呼叫來進行通訊和資料交換 資料庫(DB) ch03

3-7-1 資料庫系統的中介軟體-沒有使用中介軟體 二者為不同的應用程式 資料庫(DB) ch03

3-7-1 資料庫系統的中介軟體-使用中介軟體 同一個應用程式 資料庫(DB) ch03

3-7-2 微軟的中介軟體-說明 微軟主導的資料庫中介軟體有兩種: OLE DB和ODBC的主要差異: ODBC OLE DB ch03

3-7-2 微軟的中介軟體-ODBC(說明) ODBC(Object Database Connectivity): 程式使用ODBC API(ODBC Application Program Interface)呼叫來建立所需的應用程式 ODBC架構分成兩部分: ODBC驅動程式管理員(ODBC Driver Manager): 管理ODBC支援的各種驅動程式 以便使用正確的ODBC驅動程式來轉換ODBC API呼叫 ODBC驅動程式(ODBC Driver): 各種資料庫管理系統支援的驅動程式 可將ODBC API呼叫轉換成專屬資料庫管理系統的原生API呼叫 資料庫(DB) ch03

3-7-2 微軟的中介軟體-ODBC(圖例) 資料庫(DB) ch03

3-7-2 微軟的中介軟體-OLE DB(說明) OLE DB(或OLE-DB或OLEDB): 微軟開發的資料庫存取介面API(Application Program Interface) 開放規格的資料存取介面 OLE DB 使用COM(Component Object Model)元件來實作存取介面 可使用一致行為來存取不同資料來源的資料 支援關聯式資料庫、非關聯式資料庫的物件導向資料庫、文字檔、電子郵件、目錄服務、試算表和商業物件等不同來源的資料 資料庫(DB) ch03

3-7-2 微軟的中介軟體-OLE DB(圖例) 使用C++語言 使用非C++語言 資料庫(DB) ch03

3-7-3 昇陽的JDBC-說明 JDBC (Java Database Connectivity)中介軟體: 昇陽公司提出的資料庫 開放標準的Java程式介面,可讓Java程式連結資料庫管理系統 以Java程式語言來說 是一個實作JDBC驅動程式介面(JDBC Driver Interface)的類別,即JDBC API JDBC驅動程式介面主要分為兩類: 透過其他中介軟體作為另一種中介軟體的橋樑 JDBC驅動程式介面可以直接連接資料庫管理系統 資料庫(DB) ch03

3-7-3 昇陽的JDBC-圖例 資料庫(DB) ch03

3-8 分散式資料庫系統-說明 集中式資料庫系統(Centralized Database System): 雖然資料庫系統使用分散式處理架構 但資料庫伺服器仍然只有一個,資料庫的資料是集中儲存在一個地方 集中式資料庫系統方便資料管理 單一伺服器如果發生當機,就會影響到整個公司的營運 在全世界各地都擁有分公司,存取資料庫就需要負擔昂貴的通訊成本和造成執行效率的降低 解決方式 發展出分散式資料庫系統(Distributed Database System) 資料庫(DB) ch03

3-8 分散式資料庫系統-圖例 資料庫(DB) ch03

3-8-1 分散式資料庫系統的基礎-說明 分散式資料庫(Distributed Database, DDB): 分散式資料庫管理系統: 資料在邏輯上屬於同一個資料庫系統 實際的資料是分散儲存在以網路連接的不同資料庫伺服器 分散式資料庫管理系統: Distributed Database Management System, DDBMS 管理分散式資料庫的軟體 提供資料的分散儲存 使用者不會認為是在存取分散儲存的資料 對於使用者來說,仍是一個完整的資料庫,稱為透通性(Transparent) 資料庫(DB) ch03

3-8-1 分散式資料庫系統的基礎-架構 最基本的分散式資料庫系統架構: 使用主從架構,由多個站(Sites)或稱點(Nodes)組成 使用通訊網路(Communication Network)連接 可使用區域網路(Local Area Network)或廣域網路(Wide Area Network) 分散式資料庫系統分成1~N個站 有些站的角色是客戶端(從端) 有些站是伺服器(主端) 有些站同時擁有客戶和伺服器 資料庫分散置於擁有伺服器的各站 資料庫(DB) ch03

3-8-1 分散式資料庫系統的基礎-圖例 複寫資料庫 資料庫(DB) ch03

3-8-2 分散式資料庫系統的優缺點-優點 增加資料庫系統的執行效能: 在最近的地方就可以取得所需的資料 提高可靠性(Reliability)和可用性(Availability): 有些伺服器當機或出現網路問題 分散式資料庫系統仍然擁有足夠的妥善率,而不會影響整個資料庫系統的運作 更多的彈性和擴充性: 資料是分散儲存在多台伺服器,不論擴充與重新配置資料庫伺服器的彈性都比較高 分享與區域自主性(Local Autonomy): 資料庫伺服器的資料可分享,也可只讓區域的使用者存取 資料庫(DB) ch03

3-8-2 分散式資料庫系統的優缺點-缺點 系統複雜: 成本高昂: 維護不易: 缺乏標準: 資料是分散儲存在各地的伺服器,所以分散式資料庫系統的複雜度相當高 成本高昂: 相關應用程式的開發成本隨著分散程度而提高 維護不易: 分散式資料庫系統維護不易,容易產生資料安全與整合問題 缺乏標準: 目前並沒有分散式資料庫系統的官方標準 資料庫(DB) ch03

3-8-3 分散式資料庫系統的種類 同質分散式資料庫系統(Homogeneous Distributed Database System) 所有資料庫伺服器都採用相同的資料庫管理系統,使用相同的資料庫模型和資料操作方式 異質分散式資料庫系統(Heterogeneous Distributed Database System) 資料庫伺服器使用不同的資料庫管理系統 例如: 同時使用SQL Server和Oracle,需要考量不同資料庫管理系統和不同格式資料間的整合問題 資料庫(DB) ch03

3-8-4 資料分割-說明 資料分割(Data Fragmentation): 分割資料庫的資料成為一個個片斷(Fragment) 以便將各片斷分散儲存在其他資料庫伺服器 其中每一個片斷是資料庫的一個較小的邏輯單位 以分散式關聯式資料庫為例 各資料庫只會儲存關聯表的部分片斷 分割方式: 水平方向的水平分割 垂直方向的垂直分割 資料庫(DB) ch03

3-8-4 資料分割-水平分割 水平分割(Horizontal Fragmentation): 以關聯式資料庫為例 將關聯表以值組的列為分割單位,分割成更小的邏輯單位 資料庫(DB) ch03

3-8-4 資料分割-垂直分割 垂直分割(Vertical Fragmentation): 以關聯式資料庫為例 將關聯表以屬性的欄為分割單位,分割成更小的邏輯單位 資料庫(DB) ch03

3-8-5 資料複寫-說明 資料複寫(Data Replication): 分散式資料庫系統複寫的方式分為3種: 分散式資料庫系統的重要特點 原始資料庫稱為主資料庫(Master) 複寫的資料庫稱為拷貝資料庫(Replica) 在主資料庫和拷貝資料庫之間需要定時進行同步更新,以保持各資料庫儲存資料的一致性 分散式資料庫系統複寫的方式分為3種: 沒有複寫(No Replication) 完全複寫(Complete Replication) 部分複寫(Partial Replication) 資料庫(DB) ch03

3-8-5 資料複寫-圖例 資料庫(DB) ch03