Transcript Document

第2章
資料庫系統的概念與架構
學習重點
☼資料模型的定義、分類及歷史
☼資料庫綱要、實例及狀態
☼三層式綱要架構
☼DBMS語言、介面及元件模組
☼資料庫系統公用程式
☼二層式及三層式主從架構
☼DBMS的分類
☼常見的資料模型及DBMSs
資料庫管理
2
資料模型的定義
☼資料模型(data model):一組用來描述
資料庫結構概念的集合,以及資料庫應
該要遵守的某些限制
☼資料模型的運算:依據資料模型指定存
取及更新資料庫的動作。在資料模型上
的運算可能包含「基本運算」和「使用
者定義的運算」
資料庫管理
3
資料模型的分類
☼概念(conceptual,或高階、語意)資料
模型:提供的概念較接近使用者能理解資
料的方式
☼實體(physical,或低階、內部)資料模型:
描述資料如何儲存在電腦上的細節
☼實作(implementation,或象徵性)資料
模型:介於高階和低階資料模型之間。它
所提供的概念可以讓終端使用者理解,但
又不會太偏離資料在電腦中的組織方式
資料庫管理
4
概念資料模型
術語
實體
(entity)
屬性
(attribute)
關係
(relationship)
資料庫管理
定義
例子
代表真實世界裡
的一個物件或一
種觀念
代表某個描述實
體的重要特性
儲存在資料庫裡
的員工或專案
員工的姓名或薪
水
在兩個或兩個以 一位員工與一項
上實體間的關係, 計劃間的執行關
代表實體之間的 係
互動
5
資料模型的歷史
☼ 關聯式模型:1970年由E.F.Codd (IBM) 所提出,第一
個商業化產品出現在1981-82。現在的產品大多是屬於
這一類 (DB2、ORACLE、SQL Server、SYBASE、
INFORMIX)
☼ 網路式模型:第一個系統是由Honeywell在1964-65年
推出 (IDS System)。目前已逐漸減少
☼ 階層式模型:大約在1965年由IBM和另一家公司所開
發,成果是IMS系列系統。另一個有名的系統是
System 2k (SAS公司)
☼ 物件導向資料模型:此資料模型是採用O-O程式語言的
概念,如ORION和IRIS
☼ 物件關聯式模型:這是最近的趨勢。從Informix
Universal Server開始,目前最新的產品有Oracle-10i、
DB2和SQL Server等
資料庫管理
6
綱要 vs. 實例
☼ 資料庫綱要 (database schema):資料庫本身的描
述。包括資料庫結構的描述,以及在資料庫上應
該遵守的限制
☼ 綱要圖 (schema diagram):將資料庫綱要以圖形
繪製出來
☼ 綱要組件 (schema construct):綱要中的某個元件,
或者是綱要中的物件,如STUDENT、COURSE
☼ 資料庫實例 (database instance):在某個特定時
刻所儲存的實際資料,也稱作資料庫狀態
(database state)
資料庫管理
7
資料庫綱要 vs. 資料庫狀態
☼資料庫狀態(database state):是指在某個
時刻當時的資料庫內容
☼最初狀態 (initial state):是指資料庫剛載入
資料時的狀態
☼有效狀態 (valid state):滿足綱要裡所指定
的結構與限制的狀態
☼區別
♦ 資料庫綱要─很少更改
♦ 資料庫狀態─每次資料庫更新時都會修改
資料庫管理
8
資料庫的綱要圖─範例
資料庫管理
9
三層式綱要架構 (1/2)
☼把DBMS綱要定義為以下三層:
♦ 內部層(internal level):內部綱要(internal
schema)是用來描述實際的資料庫儲存結
構。通常是使用實體(physical)資料模型
♦ 概念層(conceptual level):概念綱要
(conceptual schema )是用來為某一組使
用者描述整個資料庫的結構與限制。通常是
使用某種概念 (conceptual) 或實作
(implementation)資料模型
♦ 外部層(external level):外部綱要(external
schema)是用來描述各個不同的使用者視
界 (view)。它通常使用與概念層相同的資料
模型
資料庫管理
10
三層式綱要架構 (2/2)
☼三層式綱要架構的目的,是為了支援
DBMS的以下特性:
♦ 程式與資料獨立
♦ 支援資料的多重視界
☼DBMS必須將外部綱要的需求轉換成概
念綱要的需求,然後再轉換成內部綱要
的需求,以便處理實體資料庫
資料庫管理
11
三層式綱要架構概念圖
資料庫管理
12
資料獨立
☼利用三層式綱要架構可以達到資料獨立的概
念。
☼資料獨立可分成兩類:
♦ 邏輯資料獨立(Logical Data Independence):代
表修改概念綱要時,不需要修改外部綱要或應
用程式的能力
♦ 實體資料獨立(Physical Data Independence):
代表修改內部綱要時,不需要修改概念綱要的
能力
資料庫管理
13
DBMS語言 (1/3)
☼資料定義語言(Data Definition Language,
DDL):一種被用來定義概念綱要的語言
♦ 大部份的DBMS中:
▫ DDL 也被用來定義內部綱要和外部綱要。
♦ 在某些的DBMS中:
▫ DDL只被用來定義概念綱要
▫ SDL (儲存定義語言, storage definition
language)被用來定義內部綱要
▫ VDL (視界定義語言, view definition language)
被用來定義外部綱要
資料庫管理
14
DBMS語言 (2/3)
☼資料處理語言(Data Manipulation
Language,DML):用來指定資料庫的擷
取與修改
♦ 嵌入在一般的程式語言:如同資料子語言(data
sublanguage),被嵌入在一般的主機語言(host
language),如COBOL、C或組合語言
♦ 直接獨立(stand-alone)執行:此時常被稱為查詢
語言(query language)
資料庫管理
15
DBMS語言 (3/3)
☼DML有兩種主要的類型:
♦ 高階(high-level) DML:或稱非程序化的(Nonprocedural) DML。
▫ 它們是集合導向的(set-oriented),主要是指
定要什麼資料,而不是如何擷取
▫ 也稱作宣告式(declarative)語言
▫ 例如,SQL語言
♦ 低階(low-level)DML:或稱程序化的(Procedural)
DML
▫ 一次擷取一筆記錄
▫ 必須內嵌在一般的程式語言中
▫ 它需要使用程式語言的結構,如迴圈,將多
筆記錄一個個的擷取,並處理每一筆資料
資料庫管理
16
DBMS介面 (1/2)
☼查詢語言介面
☼嵌入DML的程式語言介面
☼友善的介面:
♦
♦
♦
♦
♦
網頁瀏覽用的功能表介面
為初學者所設計的表單介面
圖形化介面(使用滑鼠點選和拖曳)
自然語言介面
上述的組合
資料庫管理
17
DBMS介面 (2/2)
☼其他的介面
♦ 語音的輸入和輸出:使用有限的語句當作輸
入查詢,例如電話簿查詢、飛機航班查詢、
銀行帳務資訊
♦ 固定模式使用者的介面:如銀行行員,常有
專為他們設計並實作特殊的介面
♦ DBA使用的介面:只有DBA能使用的特殊
權限命令
▫ 建立帳戶、授予帳戶權限
▫ 設定系統參數
▫ 修改綱要和重組資料庫儲存結構
資料庫管理
18
資料庫系統環境
☼資料庫系統環境的一些名詞
♦ 用戶端程式(client program):可以從某台電
腦存取另一台電腦上的DBMS
♦ 用戶端電腦(client computer):執行DBMS用
戶端程式的電腦
♦ 資料庫伺服器(database server):後端存放資
料庫的電腦
♦ 應用程式伺服器(application server):介於用
戶端和資料庫伺服器中間的電腦。用戶端會
先存取這一台電腦,再由它來存取資料庫伺
服器
資料庫管理
19
DBMS元件模組 (1/3)
資料庫管理
20
DBMS元件模組 (2/3)
DBMS元件模組名稱
功能
儲存資料管理員
(stored data manager)
負責控制存取儲存在磁碟上的
DBMS資訊,包括資料庫或目
錄
DDL編譯器
(DDL compiler)
負責處理以DDL撰寫的綱要定
義,並將綱要的描述(中繼資
料)儲存在DBMS目錄中
交談式查詢介面
(interactive query)
提供偶爾使用的使用者透過類
似交談的方式,從資料庫中查
詢取得想要的資訊
查詢編譯器
(query compiler)
負責將以交談式輸入的高階查
詢進行解析(parse)、運算的正
確性分析
資料庫管理
21
DBMS元件模組 (3/3)
DBMS元件模組名稱
功能
查詢最佳化程式
(query optimizer)
負責運算動作的重新安排和順
序調換、消除重複的部份,以
及在執行期間使用正確的演算
法和索引。
執行期間資料庫處理器
(run-time database processor)
接收擷取或更新運算,並在資
料庫上執行它們
前置編譯器
(pre-compiler)
負責從使用主機程式語言所撰
寫的應用程式中取出DML命
令
DML編譯器
(DML compiler)
將DML命令編譯成資料庫存
取用的目的碼(object code)
主機語言編譯器
(host language compiler)
處理程式中除DML命令以外
的其他部份
資料庫管理
22
資料庫系統公用程式
☼載入:從檔案載入資料到資料庫中,包
括資料轉換工具
☼備份:定期備份資料庫到磁帶上
☼重組:重組檔案結構
☼製作報表:報表產生工具
☼效能監視:效能監視工具
☼排序檔案、資料壓縮、監視使用者等
資料庫管理
23
其他工具
☼資料字典(dictionary) / 儲藏庫(repository):
♦ 用來儲存綱要描述與其它資訊,如設計決策、
應用程式描述與使用者資訊等
☼應用程式發展環境和CASE (computeraided software engineering) 工具:
♦ 範例:Power builder (Sybase)、Builder
(Borland)、JDeveloper 10G(Oracle)
資料庫管理
24
集中式的DBMS架構
☼ 集中式DBMS:將所有的元件集中在單一系統中,
包括DBMS軟體、硬體、應用程式和使用者介面
資料庫管理
25
基本的主從架構 (1/5)
☼提供專門功能的專門伺服器
☼用戶端
☼DBMS伺服器
資料庫管理
26
基本的主從架構 (2/5)
資料庫管理
27
基本的主從架構 (3/5)
☼提供專門功能的專門伺服器
♦ 檔案伺服器:維護多個用戶端共用的檔案
♦ 列印伺服器:連接各種印表機,用戶端機器
可視需要使用任一台印表機
♦ 網站伺服器:儲存網站內容
♦ 電子郵件伺服器:存放及管理電子郵件
資料庫管理
28
基本的主從架構 (4/5)
☼用戶端
♦ 提供適當的介面和可存取及利用伺服器資源
的用戶端軟體
♦ 用戶端可能是無磁碟的機器,或者是只安裝
用戶端軟體而且有磁碟的PC或工作站
♦ 透過某種形式的網路連線到伺服器(如區域
網路、無線網路等)
資料庫管理
29
基本的主從架構 (5/5)
☼DBMS伺服器
♦ 能對用戶端提供資料庫查詢與交易服務
♦ 有時稱作查詢(query)伺服器或交易(transaction)
伺服器
資料庫管理
30
二層式主從架構
☼ 在用戶端上執行使用者介面程式或應用程式
☼ 用戶端的應用程式可以利用下列的標準應用程式
介面(API, application program interface)去存取
資料庫伺服器
♦ ODBC:Open Database Connectivity
♦ JDBC:Java Database Connectivity
☼ 一個用戶端程式可能會連結到多種DBMSs
☼ 用戶端程式還有其他變化形式:例如某些DBMS
把更多的功能轉移到用戶端,包括資料字典功能、
橫跨多伺服器的最佳化和復原等。此時的伺服器
可能被稱作資料伺服器 (Data Server)
資料庫管理
31
三層式主從架構─Web應用(1/2)
資料庫管理
32
三層式主從架構─Web應用(2/2)
☼在Web應用程式上常見
☼中間層:有時稱為應用程式伺服器
(application server)或Web伺服器:
♦ 儲存網站連線軟體,以及用來存取資料庫伺服
器上資料的業務法則(business rule)
♦ 檢查用戶端的存取權限,提高安全性
♦ 扮演在資料庫伺服器與用戶端之間傳送資料的
中間角色
☼三層式架構提高安全性:
♦ 用戶端無法直接存取資料庫伺服器,僅能藉由
中間層去存取
♦ 可以在傳輸前加密伺服器上的資料,到用戶端
再解密資料
資料庫管理
33
DBMS的分類
☼依據所使用的資料模型去分類:
♦ 傳統的:關聯式、階層式、網路式
♦ 新興的:物件導向式、物件關聯式
☼其他分類準則:
♦ 單使用者(通常是使用個人電腦)vs. 多使用
者(大多數的DBMS都是)
♦ 集中式(使用儲存在單一電腦上的單一資料
庫)vs. 分散式(使用多電腦和多資料庫)
♦ 依據成本:免費的或商業產品
♦ 依據用途:通用或特殊用途
資料庫管理
34
常見的資料模型(data model)
☼網狀式模型(Network Model)
☼階層式模型(Hierarchical Model)
☼關聯式模型(Relational Model)
☼物件導向式模型(Object-Oriented Model)
☼物件關聯式模型(Object-Relational Model)
☼XML模型(eXtended Markup Language Model)
資料庫管理
35
常見的DBMSs
☼商業軟體
♦
♦
♦
♦
♦
♦
Oracle
Sybase
Ingres
Informix
DB2
MS. SQL Server
☼免費軟體
♦ MySQL
♦ PostgreSQL
資料庫管理
36