Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 2 章 資料庫系統的概念與架構.

Similar presentations


Presentation on theme: "第 2 章 資料庫系統的概念與架構."— Presentation transcript:

1 第 2 章 資料庫系統的概念與架構

2 學習重點 資料模型的定義、分類及歷史 資料庫綱要、實例及狀態 三層式綱要架構 DBMS語言、介面及元件模組 資料庫系統公用程式
二層式及三層式主從架構 DBMS的分類 常見的資料模型及DBMSs 資料庫管理

3 資料模型的定義 資料模型(data model):一組用來描述資料庫結構概念的集合,以及資料庫應該要遵守的某些限制
資料模型的運算:依據資料模型指定存取及更新資料庫的動作。在資料模型上的運算可能包含「基本運算」和「使用者定義的運算」 資料庫管理

4 資料模型的分類 概念(conceptual,或高階、語意)資料模型:提供的概念較接近使用者能理解資料的方式
實體(physical,或低階、內部)資料模型:描述資料如何儲存在電腦上的細節 實作(implementation,或象徵性)資料模型:介於高階和低階資料模型之間。它所提供的概念可以讓終端使用者理解,但又不會太偏離資料在電腦中的組織方式 資料庫管理

5 概念資料模型 術語 定義 例子 實體 (entity) 代表真實世界裡的一個物件或一種觀念 儲存在資料庫裡的員工或專案 屬性
(attribute) 代表某個描述實體的重要特性 員工的姓名或薪水 關係 (relationship) 在兩個或兩個以上實體間的關係,代表實體之間的互動 一位員工與一項計劃間的執行關係 資料庫管理

6 資料模型的歷史 關聯式模型:1970年由E.F.Codd (IBM) 所提出,第一個商業化產品出現在 。現在的產品大多是屬於這一類 (DB2、ORACLE、SQL Server、SYBASE、INFORMIX) 網路式模型:第一個系統是由Honeywell在 年推出 (IDS System)。目前已逐漸減少 階層式模型:大約在1965年由IBM和另一家公司所開發,成果是IMS系列系統。另一個有名的系統是System 2k (SAS公司) 物件導向資料模型:此資料模型是採用O-O程式語言的概念,如ORION和IRIS 物件關聯式模型:這是最近的趨勢。從Informix Universal Server開始,目前最新的產品有Oracle-10i、DB2和SQL Server等 資料庫管理

7 綱要 vs. 實例 資料庫綱要 (database schema):資料庫本身的描述。包括資料庫結構的描述,以及在資料庫上應該遵守的限制
綱要圖 (schema diagram):將資料庫綱要以圖形繪製出來 綱要組件 (schema construct):綱要中的某個元件,或者是綱要中的物件,如STUDENT、COURSE 資料庫實例 (database instance):在某個特定時刻所儲存的實際資料,也稱作資料庫狀態 (database state) 資料庫管理

8 資料庫綱要 vs. 資料庫狀態 資料庫狀態(database state):是指在某個時刻當時的資料庫內容
最初狀態 (initial state):是指資料庫剛載入資料時的狀態 有效狀態 (valid state):滿足綱要裡所指定的結構與限制的狀態 區別 資料庫綱要─很少更改 資料庫狀態─每次資料庫更新時都會修改 資料庫管理

9 資料庫的綱要圖─範例 資料庫管理

10 三層式綱要架構 (1/2) 把DBMS綱要定義為以下三層:
內部層(internal level):內部綱要(internal schema)是用來描述實際的資料庫儲存結構。通常是使用實體(physical)資料模型 概念層(conceptual level):概念綱要(conceptual schema )是用來為某一組使用者描述整個資料庫的結構與限制。通常是使用某種概念 (conceptual) 或實作(implementation)資料模型 外部層(external level):外部綱要(external schema)是用來描述各個不同的使用者視界 (view)。它通常使用與概念層相同的資料模型 資料庫管理

11 三層式綱要架構 (2/2) 三層式綱要架構的目的,是為了支援DBMS的以下特性:
程式與資料獨立 支援資料的多重視界 DBMS必須將外部綱要的需求轉換成概念綱要的需求,然後再轉換成內部綱要的需求,以便處理實體資料庫 資料庫管理

12 三層式綱要架構概念圖 資料庫管理

13 資料獨立 利用三層式綱要架構可以達到資料獨立的概念。 資料獨立可分成兩類:
邏輯資料獨立(Logical Data Independence):代表修改概念綱要時,不需要修改外部綱要或應用程式的能力 實體資料獨立(Physical Data Independence):代表修改內部綱要時,不需要修改概念綱要的能力 資料庫管理

14 DBMS語言 (1/3) 資料定義語言(Data Definition Language,DDL):一種被用來定義概念綱要的語言
SDL (儲存定義語言, storage definition language)被用來定義內部綱要 VDL (視界定義語言, view definition language)被用來定義外部綱要 資料庫管理

15 DBMS語言 (2/3) 資料處理語言(Data Manipulation Language,DML):用來指定資料庫的擷取與修改
嵌入在一般的程式語言:如同資料子語言(data sublanguage),被嵌入在一般的主機語言(host language),如COBOL、C或組合語言 直接獨立(stand-alone)執行:此時常被稱為查詢語言(query language) 資料庫管理

16 DBMS語言 (3/3) DML有兩種主要的類型:
高階(high-level) DML:或稱非程序化的(Non-procedural) DML。 它們是集合導向的(set-oriented),主要是指定要什麼資料,而不是如何擷取 也稱作宣告式(declarative)語言 例如,SQL語言 低階(low-level)DML:或稱程序化的(Procedural) DML 一次擷取一筆記錄 必須內嵌在一般的程式語言中 它需要使用程式語言的結構,如迴圈,將多筆記錄一個個的擷取,並處理每一筆資料 資料庫管理

17 DBMS介面 (1/2) 查詢語言介面 嵌入DML的程式語言介面 友善的介面: 網頁瀏覽用的功能表介面 為初學者所設計的表單介面
圖形化介面(使用滑鼠點選和拖曳) 自然語言介面 上述的組合 資料庫管理

18 DBMS介面 (2/2) 其他的介面 語音的輸入和輸出:使用有限的語句當作輸入查詢,例如電話簿查詢、飛機航班查詢、銀行帳務資訊
固定模式使用者的介面:如銀行行員,常有專為他們設計並實作特殊的介面 DBA使用的介面:只有DBA能使用的特殊權限命令 建立帳戶、授予帳戶權限 設定系統參數 修改綱要和重組資料庫儲存結構 資料庫管理

19 資料庫系統環境 資料庫系統環境的一些名詞 用戶端程式(client program):可以從某台電腦存取另一台電腦上的DBMS
用戶端電腦(client computer):執行DBMS用戶端程式的電腦 資料庫伺服器(database server):後端存放資料庫的電腦 應用程式伺服器(application server):介於用戶端和資料庫伺服器中間的電腦。用戶端會先存取這一台電腦,再由它來存取資料庫伺服器 資料庫管理

20 DBMS元件模組 (1/3) 資料庫管理

21 DBMS元件模組 (2/3) DBMS元件模組名稱 功能 儲存資料管理員 (stored data manager)
DDL編譯器 (DDL compiler) 負責處理以DDL撰寫的綱要定義,並將綱要的描述(中繼資料)儲存在DBMS目錄中 交談式查詢介面 (interactive query) 提供偶爾使用的使用者透過類似交談的方式,從資料庫中查詢取得想要的資訊 查詢編譯器 (query compiler) 負責將以交談式輸入的高階查詢進行解析(parse)、運算的正確性分析 資料庫管理

22 DBMS元件模組 (3/3) DBMS元件模組名稱 功能 查詢最佳化程式 (query optimizer)
負責運算動作的重新安排和順序調換、消除重複的部份,以及在執行期間使用正確的演算法和索引。 執行期間資料庫處理器 (run-time database processor) 接收擷取或更新運算,並在資料庫上執行它們 前置編譯器 (pre-compiler) 負責從使用主機程式語言所撰寫的應用程式中取出DML命令 DML編譯器 (DML compiler) 將DML命令編譯成資料庫存取用的目的碼(object code) 主機語言編譯器 (host language compiler) 處理程式中除DML命令以外的其他部份 資料庫管理

23 資料庫系統公用程式 載入:從檔案載入資料到資料庫中,包括資料轉換工具 備份:定期備份資料庫到磁帶上 重組:重組檔案結構
製作報表:報表產生工具 效能監視:效能監視工具 排序檔案、資料壓縮、監視使用者等 資料庫管理

24 其他工具 資料字典(dictionary) / 儲藏庫(repository):
用來儲存綱要描述與其它資訊,如設計決策、應用程式描述與使用者資訊等 應用程式發展環境和CASE (computer-aided software engineering) 工具: 範例:Power builder (Sybase)、Builder (Borland)、JDeveloper 10G(Oracle) 資料庫管理

25 集中式的DBMS架構 集中式DBMS:將所有的元件集中在單一系統中,包括DBMS軟體、硬體、應用程式和使用者介面 資料庫管理

26 基本的主從架構 (1/5) 提供專門功能的專門伺服器 用戶端 DBMS伺服器 資料庫管理

27 基本的主從架構 (2/5) 資料庫管理

28 基本的主從架構 (3/5) 提供專門功能的專門伺服器 檔案伺服器:維護多個用戶端共用的檔案
列印伺服器:連接各種印表機,用戶端機器可視需要使用任一台印表機 網站伺服器:儲存網站內容 電子郵件伺服器:存放及管理電子郵件 資料庫管理

29 基本的主從架構 (4/5) 用戶端 提供適當的介面和可存取及利用伺服器資源的用戶端軟體
用戶端可能是無磁碟的機器,或者是只安裝用戶端軟體而且有磁碟的PC或工作站 透過某種形式的網路連線到伺服器(如區域網路、無線網路等) 資料庫管理

30 基本的主從架構 (5/5) DBMS伺服器 能對用戶端提供資料庫查詢與交易服務
有時稱作查詢(query)伺服器或交易(transaction)伺服器 資料庫管理

31 二層式主從架構 在用戶端上執行使用者介面程式或應用程式
用戶端的應用程式可以利用下列的標準應用程式介面(API, application program interface)去存取資料庫伺服器 ODBC:Open Database Connectivity JDBC:Java Database Connectivity 一個用戶端程式可能會連結到多種DBMSs 用戶端程式還有其他變化形式:例如某些DBMS把更多的功能轉移到用戶端,包括資料字典功能、橫跨多伺服器的最佳化和復原等。此時的伺服器可能被稱作資料伺服器 (Data Server) 資料庫管理

32 三層式主從架構─Web應用(1/2) 資料庫管理

33 三層式主從架構─Web應用(2/2) 在Web應用程式上常見
中間層:有時稱為應用程式伺服器(application server)或Web伺服器: 儲存網站連線軟體,以及用來存取資料庫伺服器上資料的業務法則(business rule) 檢查用戶端的存取權限,提高安全性 扮演在資料庫伺服器與用戶端之間傳送資料的中間角色 三層式架構提高安全性: 用戶端無法直接存取資料庫伺服器,僅能藉由中間層去存取 可以在傳輸前加密伺服器上的資料,到用戶端再解密資料 資料庫管理

34 DBMS的分類 依據所使用的資料模型去分類: 其他分類準則: 傳統的:關聯式、階層式、網路式 新興的:物件導向式、物件關聯式
單使用者(通常是使用個人電腦)vs. 多使用者(大多數的DBMS都是) 集中式(使用儲存在單一電腦上的單一資料庫)vs. 分散式(使用多電腦和多資料庫) 依據成本:免費的或商業產品 依據用途:通用或特殊用途 資料庫管理

35 常見的資料模型(data model) 網狀式模型(Network Model) 階層式模型(Hierarchical Model)
關聯式模型(Relational Model) 物件導向式模型(Object-Oriented Model) 物件關聯式模型(Object-Relational Model) XML模型(eXtended Markup Language Model) 資料庫管理

36 常見的DBMSs 商業軟體 免費軟體 Oracle Sybase Ingres Informix DB2 MS. SQL Server
MySQL PostgreSQL 資料庫管理


Download ppt "第 2 章 資料庫系統的概念與架構."

Similar presentations


Ads by Google