DBMS,Database Management System
資料庫管理系統,負責資料庫運作的應用程式

企業在營運過程中,不斷有各種資料跟著產生,不管是產品製造的數量、客戶的資料或是商業交易的結果等,由於這些資料的數量相當可觀,因此需要一個儲存的地方,而這個儲存的地方通常就是資料庫。

資料庫透過特定的格式與方法儲存資料,通常資料庫不會獨立存在,而會與資料庫管理系統結合,才能方便企業管理與應用。

資料庫管理系統的基本功能大概包含資料的維護、查詢以及使用者存取介面和資料的呈現管理,透過這些功能,資料才能有效率地呈現在使用者面前,並維持資料的穩定性。

在安全方面,「雞蛋不能放在同一個籃子」也是資料庫必須遵循的法則,資料庫管理系統必須提供資料備份或資料複寫工作,同時也需要還原備份的機制。

由於資料庫中的資料有些極為機密,不能讓人隨意檢視,因此資料庫管理系統必須負擔安全上的責任,能夠依使用者的權限,給予不同檢視結果。有些資料庫系統甚至會將機密資料加以編碼,即使資料庫的管理員也無法檢視特定的欄位內容。

除了資料的處理與安全,資料庫管理系統有時也會進一步提供報表與圖表功能,方便使用者將資料包裝成更具意義的資訊。此外,由於資料庫管理系統日益成熟,各家廠商無不花盡心思在新功能的開發上,企圖提高資料庫管理系統的附加價值,像是強化XML處理、支援非結構化的檔案,或是在資料庫應用上加入商業智慧的應用等,都是近年來發展的重點。

資料庫管理系統從檔案型的應用程式(如Access、FileMaker)到伺服器型的系統(如Oracle資料庫、SQL Server),使用方式不一,規模也有落差,但歸根究底來說,這些資料庫管理系統都在提供使用者與管理服務,便於操作與利用資料庫方法。文⊙黃天賜

Abstract Layer
抽象層

資料庫的抽象層包含了邏輯層(Logical Layer)與外部層(External Layer),邏輯層是透過資料結構關係,重新組合實體層的檔案資料,形成具意義的資料集合。邏輯層必須保持它的獨立性,當它有異動時,不能影響到外部層的呈現。

外部層與邏輯層同屬抽象層,這個層級是使用者實際看到的資料形態,往往是結合數個資料表的結果。使用者或應用程式,也是透過這一層存取或操作資料庫。

Physical Layer
實體層

實體層是資料庫管理系統實際儲存資料檔案的地方。通常資料庫的資料,分散儲存在不同的檔案或磁碟中,透過資料庫管理系統的自動處理與轉換,就會形成使用者能夠使用的邏輯資料結構。

實體層必須保持它的獨立性,換句話說,如果實體層檔案的位置搬移、更動檔名這類的異動,資料庫管理系統必須確保不會影響到邏輯層的資料結構。

Deadlock
鎖定死結

資料庫是多人同時使用的系統,讀取、修改同一筆資料的情況必然會發生,為避免衝突,就必須透過種種鎖定(lock)機制,像是共用、獨占等模式,維持資料庫正常運作。

不過有時系統仍然會發生爭搶資源的情況,例如兩個使用者雖然修改不同筆記錄(形成鎖定),但卻剛好必須參照到對方的資料才能完成(已經被鎖定而無法參照),因此形成鎖定死結。鎖定死結必須由系統介入,停掉其中一個程序才能解決。

File-Oriented DBMS
檔案導向的資料庫管理系統

最典型的檔案導向資料庫管理系統,莫過於微軟的Access,它是在用戶端電腦上執行資料庫引擎與管理程式,每個資料庫都以單一檔案為單位。

這類型的資料庫管理系統架構相對單純,容易操作使用,對處理資料量不大的個人或企業適用。但是對於像GB甚至TB的資料量而言,檔案導向資料庫管理系統的擴充性與效能就無法應付。

ODBC,Open Database Connectivity
開放資料庫連結

ODBC是微軟在Windows平臺上,提供給需要與資料庫連線的應用程式的共通連接介面。因此無論使用哪一種資料庫,只要透過廠商所提供的ODBC驅動程式,開發人員就能利用ODBC的介面連接資料庫,將查詢過程單純化。

由於Java的Applet無法透過ODBC與資料庫連接,而有JDBC的出現,只要資料庫程式提供JDBC的驅動程式,就能與ODBC達到相同的作用。

SQL,Structured Query Language
結構化查詢語言

SQL可說是資料庫的核心語言,可以用來操作資料的種種行為,包括資料定義、資料操作與資料控制語言。SQL最初是由IBM研究中心在1970年代初期開發,是專門用於關連式資料庫的查詢語言。

後來各家關聯式資料庫廠商紛紛推出自己的SQL語法,而造成開發上的難度。為了解決紛亂的規格,ANSI在1986年制定標準化規格,並在1987年被ISO認定為國際標準。

Stored Procedure
預存程序

資料庫管理系統提供的程式語法,可以利用如條件分歧、迴圈處理等控制語法,執行較複雜的處理。各家資料庫的預存程序不同,例如SQL Server提供「Transact-SQL」,而Oracle資料庫提供「PL/SQL」作為預存程序的語言。

由於預存程序語法在經過編譯後,執行速度較快,有利於反覆執行。另外,也由於在伺服器端處理,因此能夠減少網路通訊的負載,加速處理程序。

Trigger
觸發程序

觸發程序是和資料表緊密結合的預存程序,當資料表有新增、修改、刪除事件發生時,使用者可以指定觸發程序,讓它自動執行。
觸發程序比起一般資料庫的條件約束(像是檢查資料是否重複或自動填入輸入值),應用的範圍更廣,像是當商品庫存過低時,發出警訊通知,或是訂單取消時,自動刪除派送貨物的配送資料。觸發程序的自動化機制,能讓資料庫更有效率。

Transaction
交易

交易指的是一連串的SQL執行動作,這些動作必須全部執行成功,才會確認 (commit)交易完成。如果當中發生問題無法往下執行時,系統則會將資料退回(rollback)最初的狀態。

就結果而言,交易可以保證對資料庫的多項修改動作,結果只會是全改,否則就一項也不改。交易機制不但可以確保交易行為的完成,也可避免因停電、當機或網路故障造成的交易中斷引發的錯誤。


熱門新聞

Advertisement