一個資料庫系統使用成員有四類,分別為使用者、直接使用者、應用程式與
資料庫管理員[11]。
使用者:經由開發的程式取得資料庫中資料,並不會直接與資料庫系統 接觸。
直接使用者:使用資料庫系統所提供指令,直接對資料庫下達查詢指 令,此類人員多為企業內資訊部門中程式開發人員或應用程式負責人
員。
應用程式:開發應用程式向資料庫管理系統下達命令,例如企業開發轉 檔程式。
資料庫管理員:負責資料庫管理工作的人員,負責定義資料儲存結構、
管理資料庫綱要「Database Schema」、資料庫安全控制、資料備份與回
存、監督、調整資料庫效能並排除資料庫使用上等問題。
2.2 資料庫管理系統 資料庫管理系統 資料庫管理系統 資料庫管理系統
DBMS (Database Management System)是一種應用軟體。此一軟體能有系統地 建立、更新、儲存及取得資料庫中資料。使用者與開發的程式人員能夠共享資料,
同時程式與程式間亦可共享資料,無須為每個程式產生與儲存新的檔案。DBMS
亦能提供資料存取控制、管理好資料的完整性與一致性的控制,以及資料庫的復
原機制[9]。
2.3 資料庫管理系統架構 資料庫管理系統架構 資料庫管理系統架構 資料庫管理系統架構
資料庫管理系統為方便使用者使用,系統中複雜的資料結構與相關存取控制
特地隱藏起來,使用者只須留意資料本身的處理。其目的將使用者應用程式與資
料儲存體分開,達到「資料獨立」及「資料分享」[10]。
現今資料庫管理系統大多採用美國國家標準協會系統綜合規劃委員會
ANSI/SPARC(American National Standards Institute / Standards Planning And Requirements Committee)中的資料庫管理小組所制定的資料庫系統架構,其設計 準則採ANSI/SPARC三階層綱目架構如圖2.1所示。
圖 圖 圖
圖2.1 資料庫系統三階層綱目架構資料庫系統三階層綱目架構資料庫系統三階層綱目架構[10] 資料庫系統三階層綱目架構
1. 外部層次(External Level):為使用者層次,每一個概略表可看成不同的使用 者。
2. 概念層次(Conceptual Level):主要在描述資料庫管理系統中全部資料邏輯結 構和特徵,其中概念綱要(Conceptual Schema)在定義資料庫實體與關聯邏輯
含意。
3. 內部層次(Internal Level):為實體層次(Physical Level)或儲存綱目(Storage Schemas),其中內部綱要(Internal Schema)代表資料儲存的描述,定義檔案儲 存體的資料集合,檔案可以是儲存概念資料庫中一個或多個實體描述。
2.4 DBA( 資料庫管理員 資料庫管理員 資料庫管理員 資料庫管理員 ) 工作內容研究 工作內容研究 工作內容研究 工作內容研究
本節主要研究SQL Server 2000/2005資料庫管理人員日常作業[11]以及任
務,來作為本系統開發之參考。
安裝和設定安裝和設定安裝和設定安裝和設定
DBA 常被要求支援軟硬體的安裝及協助設定。在一般的維護工作上,由於 DBA 必須確定所安裝或設定的系統和資料庫是可執行及和穩定的,因此整個系 統的設定亦皆屬責任範圍內。
維持維持維持維持安全性安全性安全性 安全性
監視系統的安全性及隨時報告所發現的問題是 DBA 的另一項責任。一個系
統需要什麼種類或多少份量的安全系統,取決於使用系統的權限範圍。如一個沒
有與網路相連接的系統僅供給幾位可信賴的員工使用,這樣的系統所需的安全裝 置就不會比一個與網路有連接的系統所需要的安全裝置來得複雜。除了管理使用
者之外,DBA 也需要設計並實施網路保全計劃,這方面的工作通常會指派給具
有網路保全相關經驗的資深人員執行。
系統稽核系統稽核系統稽核系統稽核
系統稽核包括監控 Sever 錯誤記錄檔和作業系統事件記錄檔。這些記錄檔和
事件記錄檔記載 DataBase Server 以及作業系統保全有關的重要資訊。必須定時 監 控 這 些 資 料 以 確 保 系 統 內 部 的 安 全 。 如 data definition language (DDL)
statement 和插入、更新及刪除的功能。還可用來監控特定的事件、登入的時間、
使用者名稱及相關活動。
執行規則複製和測試備份回復 DBA 工作的一部分。如果系統出現了故障,
在很多情況下,使用備份是回復資料庫的唯一途徑。但是如果沒有正確的執行備 份,就不可能回復資料庫,那會導致資料的遺失和可能好多天的停機,甚至可能
造成損失。
使用者使用者使用者使用者權限權限權限權限管理管理管理管理
使用者管理也是 DBA 一項例行工作,包括管理 Server 的登入和使用者權
限。任何一個需要使用資料庫的員工都必須先透過 DBA 設定其權限才得以進入
系統。通常在企業間開放權限時,是很少完全開放一個人的權限,通常會依照該 部門業務所需要的資料來開放相關的權限。
調整及監控調整及監控調整及監控調整及監控
如果突然遇到反應時間變長、所使用的 CPU Time 變大等狀況,可能都是系
統出現問題的預兆。當您遇到不同的系統,監控的方式及解釋監控的結果也會隨
之不同。因此必須根據所遇到的系統作判斷並解決問題。您也必須定期監控系統
的資源使用情形。如此,就可以在系統效能降低時即時調整系統。
資源分享資源分享資源分享資源分享
DBA 有時也會被要求成為開發者、設計者和使用者的顧問角色。幫助一般 使用者有關特定問題的協助,或者開發訓練課程,甚至親自教授課程。幫助開發
人員,提供關於過去系統使用的情況以及新的進展對使用者的好處等資訊。這可
能包括通知使用者可用的新資料表和索引,以及所有可能有用的新特性。幫助設
計人員,提供不同的設計特性對使用者有何益處等。有時設計人員開發的應用程
式可能缺少一些使用者希望或需要的特性,而將這些資訊傳遞給他們可能有助於
將來的設計。如果使用者對於使用某些功能有問題,此時他們更可能向您提出問 題,因此您是設計人員很好的資訊提供者。
2.5 多層式架構 多層式架構 多層式架構 多層式架構 (Multi-Tier Architecture)
分散式架構(Distributed Architecture)在近年來不斷的被討論[4][5][14],它是
一種全面性的IT架構變革,與傳統Client/Server或單機介面不同之程式架構,在
企業業務流程企業在考量確保過去IT的投資,又可持續保有IT架構的發展與發揮
IT系統所應帶來的效益,分散式架構的導入,已在多數企業的心中醞釀。
本研究之企業樣板相關概念的基礎和架構,是衍生自 Microsoft 近年來為降
低企業環境應用程式之複雜性所開發的分散式應用程式架構[14]。這個模型有時
也被稱為「多層式架構」,因為以邏輯組合的概念最容易瞭解它的意義。因為使
用的是樣板,樣板在這專案開發之前就已經為您完成了一些架構。這項優點可以
減少您的工作量和規劃的時間。各種分散式應用程式樣板提供一種開發應用程式
(使用分散式架構) 的標準方法。只要使用樣板,就是選擇在標準的位置上實作 服務。您並不需要實作所有的層。樣板會取得實作的部分,它們會在與分散式應
用程式架構一致的層內實作。舉例來講,如果您需要 XML Web Service ,您只
需在 Web 服務專案層中實作它,不用將它加入到用戶端或商務邏輯層。 一般
多層式架構分為顯示層(Presentation Layer)、邏輯層(Business Logic Layer)以及資
UI Components UI Process Components
Data Access Components
Data Access Layer Data Access Layer
Web Tier
App Tier
Data Tier
Business Logic Layer Business Logic Layer
Presentation Layer
特定問題域的需求規格(Specification)轉換成程式片段、子程式(Subroutine) 或軟
體系統,本論文研究的範圍如下:
利用所使用的System Architecture 及Framework,制定程式範本,用程式產 生器產生程式
Data Access Layer 程式相依於 table schema,最適合用程式產生器來產生程 式
2.7 O/R Mapping(Object Relation Mapping)
O/R Mapping 主要用於實作從物件資料(物件導向)到關聯資料(關聯式資料 庫)的存儲對映的技術[12][18](參見圖 2.3)。在本論文研究中,主要用來產生與資
料庫資料綱要(Data Schema) 對應之類別程式,也是本論文程式產生器使用之主
要規則。
O/R Mapping 之 運 作 步 驟 : 從 Data Sources 出 發 , 定 義 Pattern Rule (Template) , 利 用 Code Generator 來 產 生 Concrete/Base Class , 最 後 進 行 Customize Class (參見圖 2.4)。
圖 圖 圖
圖 2.3 從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術從物件資料到關聯資料的存儲對映的技術
圖 圖 圖
圖 2.4 O/R Mapping 之運作步驟之運作步驟之運作步驟 之運作步驟
2.8 Microsoft Enterprise Library Framework
我們在製做大型專案都常會用到一些機制,如異常狀態處理(Exception
Handling)、工作日誌(Log)等。在設計與實作上,我們可能會想要有一個架構可 以涵蓋我們的需求,並且可重覆使用。
通常自己去設計完全符合自己風格的Framework來解決我們的問題,可是微 軟所推出的Enterprise Library算是比完整解決方案了。本論文多層式架構採用之
樣版是使用Micorost Enterprise Library[19]來作為Framework 參考。
Enterprise Library擁有幾個優點:
(1) 利用已包裝過的Library來協助我們快速解決問題
(3) 所有的Application Block除了內建的功能外,都允許我們自己自訂處理方法 (4) 處理機制都已配合.NET特性,進行過效能的最佳化
Enterprise Library不是用來取代.NET Framework裡任何的功能,它只是更加 強化.NET Framework裡原有的不足。Enterprise Library裡內建了六個方面的功能
(稱之為Application Block),和一個部份將會和其它Library共用的核心(Core)。
下圖是微軟官方的架構圖,簡單介紹Enterprise Library 2.0的整體架構:
圖圖圖
圖 2.5 Microsoft Enterprise Library 架構及運作關係架構及運作關係架構及運作關係架構及運作關係[18]
我們可以把這個架構圖分成幾個部份來看:
(一) 核心(Core):
Configuration : Enterprise Library的 設 定 檔 就 預 設 是 我 們 平 常 在 使 用 的 app.config或web.config,不過我們也可以改成設定在資料庫中。特殊的是,
Configuration Design & Tools:微軟的團隊在設計這個工具的時候,也考慮 到在撰寫app.cinfig或web.config已經愈趨複雜,若要把Application Block的 設定也加到裡面,撰寫的困難度一定也會大大提高。所以就設計了Enterprise
Library Configuration工具來協助我們撰寫設定檔。
Instrumentation:EL中所有的Application Block都內建了以下功能來協助我 們開發、測試:a. Event Log events b. Performance c.WMI events。
Object Builder:這是使用設定檔就能夠造成系統運作改變的重要原因,可
Object Builder:這是使用設定檔就能夠造成系統運作改變的重要原因,可