第2章 資料庫系統
2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構 2-3 資料庫綱要 2-4 實際與邏輯資料獨立 2-5 資料庫系統的分類與優缺點 2-6 資料庫管理系統 2-7 資料庫管理師
2-1 資料庫環境的四大組成元件
2-1-1 使用者 2-1-2 資料
2-1-3 軟體 2-1-4 硬體
2-1-1 使用者 – 說明
資料庫服務的對象是人,即資料庫系統的眾多使 用者(Users)。依不同角色可以分類為: • 終端使用者(End Users) • 資料管理師(Data Administrator;DA) • 資料庫設計師(Database Designers) • 資料庫管理師(Database Administrator;DBA) • 系統分析師(System Analyst;SA)2-1-1 使用者 – 終端使用者
終端使用者(End Users)的主要工作是查詢、更
新資料庫或存取資料庫來產生所需的報表,終端 使用者可以分為數種,如下所示:
• 初級使用者(Naive or Parametric Users) • 不常使用的使用者(Casual Users)
2-1-1 使用者 – 資料管理師
資料管理師(Data Administrator;DA)是公司或
組織的高階主管,負責決定公司或組織的哪些資 料應該儲存在資料庫,並且負責制定和維護公司 或組織的資料儲存政策。
2-1-1 使用者 – 資料庫設計師
資料庫設計師(Database Designers)精通資料庫
設計,其主要工作是執行資料庫設計來建立公司 或組織的資料庫結構。
2-1-1 使用者 – 資料庫管理師
資料庫管理師(Database Administrator;DBA)是
公司或組織資料庫系統的總管,負責維護和管理 整個資料庫系統,以便更有效率的提供服務和保 障系統的正常運作。
2-1-1 使用者 – 系統分析師
系統分析師(System Analyst;SA)與應用程式設
計師屬於「專業使用者」(Specialized Users), 系統分析師能夠依據終端使用者的需求;主要是 指初級使用者(Naive or Parametric Users)來製定 資料庫應用程式的規格與功能。
2-1-2 資料 – 說明
資料(Data)是指資料庫中儲存的資料,在資料 庫系統的資料可以分為: • 長存資料 • 系統目錄 • 索引資料 • 交易記錄2-1-2 資料 – 長存資料
資料庫儲存的是公司或組織的非暫時資料,這些 資料是長時間存在的資料,稱為長存資料( Persistent Data),使用者可以使用應用程式的介 面來新增、刪除或更新資料。 一般來說,使用者只需針對長存資料進一步執行 各種查詢和運算,就可以得到所需的資訊。2-1-2 資料 – 系統目錄
系統目錄(System Catalog)是由資料庫管理系統 自動產生的資料,或稱為「資料字典」(Data Dictionary),其內容是從前述長存資料所衍生的 一些資料。 • 例如:定義資料庫結構的中繼資料(Meta-data),系 統目錄的主要目的是提供維護和維持資料庫運作所需 的資訊。2-1-2 資料 – 索引資料
索引的目的是為了在資料庫儲存的龐大資料中,能夠更快 速的找到資料。索引資料(Indexes)是一些參考資料,它 是將資料庫中特定部分(屬性)的資料預先進行排序,然 後提供「指標」(Pointer)指向資料庫真正儲存記錄的位 址,資料庫管理系統通常是使用雜湊函數(Hash Function )或B樹(B-Tree)等演算法來建立索引資料。2-1-2 資料 – 交易記錄
交易記錄(Transaction Log)是資料庫管理系統自 動產生的歷史資料,可以記錄使用者在什麼時間 點下達哪些指令或執行什麼操作。 基本上,交易記錄對於一般使用者來說,並沒有 什麼用處,但是對於資料庫管理師來說,就是十 分重要的參考資訊。2-1-3 軟體 – 說明
在資料庫環境使用的軟體(Software),除了作業 系統外,還包含其他相關軟體: • 資料庫管理系統 • 應用程式 • 開發工具2-1-3 軟體 – 資料庫管理系統
資料庫管理系統(DBMS)提供一組程式模組來定
義、處理和管理資料庫的資料,在此主要是指哪 些一般用途的資料庫管理系統,如下圖所示:
2-1-3 軟體 – 應用程式
應用程式(Application Program)是程式設計師使 用開發工具或程式語言,所自行建立的專屬軟體 。應用程式提供使用者所需使用介面的選單或按 鈕,操作介面就可以向資料庫管理系統下達查詢 語言的相關指令,在取得資料後,顯示或產生所 需的報表。2-1-3 軟體 – 開發工具
開發工具(Development Tools)是用來建立資料 庫和開發應用程式。例如:資料庫塑模工具、資 料庫開發工具或程式語言的整合開發環境,這些 工具可以幫助資料庫設計師建立資料庫結構,和 程式設計者快速建立應用程式。• 例如:PowerBuilder、Oracle Developer和Visual Studio等 。
2-1-4 硬體
安裝資料庫相關軟體的硬體(Hardware)設備, 包含:主機(CPU、記憶體和網路卡等)、磁碟 機、磁碟陣列、光碟機、磁帶機和備份裝置。 整個資料庫系統的硬體處理架構依照運算方式的 不同,分為:集中式或分散式的主從架構。2-2 ANSI/SPARC的三層資料庫系統架構
2-2-1 ANSI/SPARC資料庫系統架構的基礎 2-2-2 概念層 2-2-3 外部層 2-2-4 內部層 2-2-5 ANSI/SPARC資料庫系統架構的目的 ANSI/SPARC 架構從未正 式成為官方 的標準規格 ,不過它就 是目前被廣 泛接受的資 料庫系統架 構,如右圖 所示:
2-2-1 ANSI/SPARC資料庫系統架構
的基礎 – 圖例
2-2-1 ANSI/SPARC資料庫系統架構的
基礎 – 圖例說明
ANSI/SPARC是以三個階層來說明資料庫管理系統的架構, 分別以使用者、資料庫管理師(也可能是資料庫設計師) 和實際儲存的觀點來檢視資料庫儲存的資料,其簡單說明 如下表所示: 階層名稱 說明 概念層(Conceptual Level) 資料庫管理師觀點的資料,這是資料庫的完整 資料,屬於在概念上看到的完整資料庫 外部層(External Level) 一般使用者觀點的資料,代表不同使用者在資 料庫系統所看見的資料,通常都只有部分資料 庫的資料 內部層(Internal Level) 實際儲存觀點所呈現的資料,它是實際資料庫 儲存在電腦儲存裝置的資料2-2-2 概念層
在概念層(Conceptual Level)看到的是整個資料 庫儲存的資料,它是資料庫管理師觀點所看到的 完整資料庫。因為只是概念上的資料庫,所以不 用考量資料實際的儲存結構,因為這是內部層( Internal Level)的問題。2-2-3 外部層 – 說明
對於資料庫系統的使用者來說,其面對的是外部層(
External Level)的使用者觀點(User Views)資料,這些資 料包含多種不同觀點。例如:一所大學或技術學院的學校 資料庫,可以提供多種不同使用者觀點的資料,如下所示 : 使用者觀點1:學生註冊資料 使用者觀點2:學生選課資料 使用者觀點3:學生成績單資料 上述使用者擁有不同的觀點,當然,一組使用者也可能看 到相同觀點的資料。如同從窗戶看戶外的世界,不同大小 的窗戶和角度,就會看到不同的景觀。
2-2-3 外部層 – 資料內容
外部層資料都是來自概念層的資料,使用者看到 的資料是源於、運算自或導出自概念層完整資料 庫的資料,如下所示: • 資料使用不同方式來呈現 • 只包含使用者有興趣的資料 • 相同資料可以使用不同的屬性名稱 • 相同資料可能顯示不同格式 只包含使用者有興趣 的資料2-2-4 內部層
在內部層(Internal Level)看到的是實際儲存觀點 的資料庫,它就是實際電腦儲存在磁碟等儲存裝 置的資料。換句話說,內部層在三層架構中,扮 演資料庫管理系統與作業系統的介面角色。 內部層的資料是實際儲存在資料庫的資料結構或 檔案組織所呈現的資料內容。例如:使用鏈結串 列結構來儲存資料,如下圖所示:2-2-5 ANSI/SPARC資料庫系統架構的
目的 – 說明
ANSI/SPARC資料庫系統架構的目的是分隔使用者 看到的資料庫和實際資料庫儲存的結構,如此在 概念層的完整資料庫,並不會因為實際儲存裝置 的改變而受到影響。 • 例如:更換新硬碟、磁碟陣列或使用更好的儲存裝置 。2-2-5 ANSI/SPARC資料庫系統架構的
目的 – 原因
以使用者的角度來說,其原因為: • 使用者觀點所見的資料是獨立的 • 使用者並不用了解實際資料的儲存方式 以資料庫管理師的角度來說,其原因為: • 更改實際儲存結構不會影響使用者觀點的資料 • 更改概念層的完整資料庫也不會影響使用者觀 點的資料2-3 資料庫綱要
2-3-1 資料庫綱要的基礎 2-3-2 三層資料庫綱要
2-3-3 資料庫綱要間的對映
2-3-1 資料庫綱要的基礎 – 圖例
「資料庫綱要」(Database Schema)是指整個資
料庫的描述,即描述整個資料庫儲存資料的定義 資料,如下圖所示:
2-3-1 資料庫綱要的基礎 – 圖例說明
在資料庫管理系統管理的資料庫,可以分割成資 料和描述資料的綱要,如下所示: • 綱要(Schema):資料描述的定義資料,對比程式語 言的變數就是資料型別(Data Type)。例如:在C語言 宣告整數的grade成績變數,如下圖所示: int grade; • 資料(Data):資料本身,即程式語言的變數值。例如 :成績為85分,如下所示: grade = 85;2-3-2 三層資料庫綱要 – 圖例
在ANSI/SPARC三層資料庫系統架構的每一層,都可以分割 成資料和綱要,換句話說,完整資料庫綱要也分成三層, 如下圖所示:
2-3-2 三層資料庫綱要 – 簡單說明
三層資料庫綱要,每一層的簡單說明,如下表所 示: 資料庫綱要 說明 外部綱要(External Schema) 描述使用者的資料 概念綱要(Conceptual Schema) 描述資料本身的意義 內部綱要(Internal Schema) 描述實際儲存的資料2-3-2 三層資料庫綱要 – 外部綱要
外部綱要(External Schema)源於概念綱要,主 要是用來描述外部層顯示的資料,每一個外部層 綱要只描述資料庫的部分資料,隱藏其他不需要 的資料。 換句話說,每一個外部層使用者觀點的資料都需 要一個外部綱要,同一個資料庫可以擁有多個外 部綱要,如下圖所示:2-3-2 三層資料庫綱要 – 概念綱要
概念綱要(Conceptual Schema)是描述概念層的 完整資料庫,即「概念資料庫設計」(Conceptual Database Design)的結果。概念資料庫設計主要 是分析使用者資訊,以便定義所需的資料項目, 並不涉及到使用哪一套現有的資料庫管理系統。 概念綱要完整描述資料庫資料和其關聯性,所以 資料庫只能擁有一個概念綱要,如下圖所示:2-3-2 三層資料庫綱要 – 內部綱要
內部綱要(Internal Schema)是描述內部層實際儲存觀點 的資料,它是定義資料的儲存結構和哪些資料需要建立索 引。如同概念綱要,資料庫只能擁有一個內部綱要。例如 :使用C語言宣告學生Students的結構,如下所示: struct Students { char id[5]; char name[15]; char address[40]; char telephone[15]; struct Date birthday; struct Students *next; };2-3-3 資料庫綱要間的對映 – 說明
三層資料庫綱要只是描述資料,真正的資料是儲 存在外部儲存裝置的資料庫。 當以外部層使用者觀點顯示資料時,也就是參考 外部綱要向概念綱要請求資料,然後概念綱要請 求內部綱要從資料庫取得資料,在取得真正的資 料後,資料需要進行轉換來符合概念綱要的定義 ,然後再轉換成符合外部綱要的定義,最後才是 外部層使用者觀點看到的資料,在各層間進行的 資料轉換過程,稱為「對映」(Mapping)。2-3-3 資料庫綱要間的對映 – 種類
外部與概念對映(External/Conceptual Mapping) :所有外部綱要都要對映到概念綱要,以便資料 庫管理系統知道如何將外部層的資料連接到哪一 部分的概念綱要。例如:在外部綱要(Sid, Name, Age),Sid是對映到概念綱要的Id,Age是從概念綱 要的Birthday運算而得。 概念與內部對映(Conceptual/Internal Mapping) :這是概念綱要對映到內部綱要,以便資料庫管 理系統可以找到實際儲存裝置的記錄資料,然後 建立概念綱要的邏輯結構。2-4 實體與邏輯資料獨立
2-4-1 資料獨立的基礎 2-4-2 邏輯資料獨立
2-4-1 資料獨立的基礎 – 說明
三層資料庫綱要的目的是為了達成「資料獨立」 (Data Independence),也就是說上層綱要並不 會受到下層綱要的影響,同理,當下層綱要更改 時,也不會影響到上層綱要。 與資料獨立相反的術語是「資料相依」(Data Dependence),如果改變內部儲存的資料結構, 相關函數也需要同步修改,這就是資料相依。相 反的,如果資料結構更改,也不用更改演算法, 就稱為資料獨立。2-4-1 資料獨立的基礎 – 種類
三層資料庫綱要的目的是為了達成資料獨立,如 此應用程式就不會受到資料庫的資料所影響,可 以將使用者的應用程式與資料庫分開,這也是為 什麼我們可以在現有資料庫管理系統上開發所需 的應用程式。 在三層資料庫綱要中擁有兩種資料獨立: • 外部與概念對映的邏輯資料獨立(Logical Data Independence)。 • 概念與內部對映的實體資料獨立(Physical Data Independence)。2-4-2 邏輯資料獨立
邏輯資料獨立(Logical Data Independence)是指當更改概 念綱要時,並不會影響到外部綱要。其位置是在三層架構 的外部綱要和概念綱要之間,如下圖所示:
2-4-3 實體資料獨立
實體資料獨立(Physical Data Independence)是指當更改 內部綱要時,並不會影響到概念綱要。其位置是在三層架 構的概念綱要和內部綱要之間,如下圖所示:
2-5 資料庫系統的分類與優缺點
2-5-1 資料庫系統的分類 2-5-2 資料庫系統的優缺點
2-5-1 資料庫系統的分類 - 使用者數來區分
資料庫系統以使用者人數來分類,如下所示: • 單人使用(Single-user):資料庫系統只有專屬使用者 ,從早期大型主機的資料庫系統和一些小型資料庫系 統都屬於此類。 • 多人使用(Multi-user):資料庫系統允許多位使用者 同時使用,目前大部分資料庫系統都屬於多人使用的 資料庫系統。2-5-1 資料庫系統的分類 - 範圍來區分
資料庫系統如果以使用的範圍(Scope)來分類,如下所 示: • 桌上型(Desktop):在個人電腦上執行的資料庫系統,通常也是 個人使用,適用在個人或中小企業的資料庫應用。例如:Access、 FoxPro和FileMaker Pro等。 • 工作群組(Workgroup):在公司部門或組織中以工作群組方式區 分的資料庫系統,例如:業務、會計和倉庫管理等各工作群組使 用的客戶管理、會計和進銷存等資料庫系統都屬此類。 • 企業級(Enterprise):跨部門或分公司的大型資料庫系統,屬於 大型企業使用的資料庫系統,因為分公司可能分佈各地,大多是 使用分散式資料庫系統(Distributed Database System)。2-5-1 資料庫系統的分類 - 位置來區分
資料庫系統以位置來區分是指資料庫管理系統在
哪個位置執行資料處理,因為資料庫系統的資料 處理可能位在同一台主機或網路上的其他主機, 如下所示:
• 集中式資料處理(Centralized Data Processing):使用 單一大型主機(Mainframe),將資料處理、儲存都集 中在這台電腦,使用者是以「終端機」(Terminals) 連接主機執行資料處理。
• 分散式資料處理(Distributed Data Processing):電腦 是分散在公司和組織的不同位置,使用網路連接電腦 ,資料庫系統可以安裝在任何一台電腦來執行所需的 資料處理。
2-5-1 資料庫系統的分類 - 資料庫模型來區分
資料庫系統使用資料庫模型來區分,可以分類成 : • 網路式資料庫系統 • 階層式資料庫系統 • 關聯式資料庫系統 • 物件導向式資料庫系統 • 物件關聯式資料庫系統2-5-2 資料庫系統的優缺點 - 優點
整合的資料管理 資料共享 減少資料重複(Data Redundancy) 維持資料的一致性(Data Consistency) 資料獨立(Data Independence) 提供單一介面和語言存取資料 更多的資料保密、安全管理和控制能力 提供多種觀點的資料 支援交易管理(Transaction Management) 具高可靠性(Reliability) 降低軟體開發的費用2-5-2 資料庫系統的優缺點 - 缺點
龐大的額外費用 資料轉換的成本 安全管理的漏洞 大幅更改作業流程 系統風險增加 人為風險增加2-6 資料庫管理系統
2-6-1 資料庫管理系統的基本功能 2-6-2 資料庫管理系統的系統架構
2-6 資料庫管理系統
資料庫管理系統從字面來說是一套管理資料庫的軟體工具 ,它是由一組程式模組負責組織、管理、儲存和讀取資料 庫的資料,使用者對於資料庫的任何操作,都需要透過資 料庫管理系統來處理。 資料庫管理系統在眾多的電腦軟體系統架構中,是位在作 業系統和應用程式開發工具之間,如下圖所示:2-6-1 資料庫管理系統的基本功能 –
資料管理
資料庫管理系統的最基本功能是資料管理(Data Management),能夠管理資料庫儲存的各種資料,包含 :資料檔、系統目錄、索引資料、備份檔(資料庫管理系 統備份資料庫時建立的檔案)和交易記錄,如下圖所示:2-6-1 資料庫管理系統的基本功能 –
資料庫管理系統語言
資料庫管理系統提供第4代語言(4GL),可以讓使用者定 義、查詢或存取資料,資料庫管理系統語言(DBMS
Languages)主要分成兩大類,如下所示:
• 資料定義語言DDL(Data Definition Language):這個語言的目的 是建立資料庫綱要(Database Schema),其編譯後的指令敘述是 儲存在系統目錄(System Catalog),使用者只需使用此語言就可 以建立資料庫綱要。
• 資料操作語言DML(Data Manipulation Language):這個語言的指 令敘述可以讓使用者存取和操作資料庫的資料,它是使用者與資 料庫管理系統間溝通的語言。資料操作有:取得、新增、刪除和 更改資料庫的資料。
2-6-1 資料庫管理系統的基本功能 –
安全管理
資料庫儲存的資料是使用者共享的資料,所以資料庫管理 系統需要提供安全管理(Security Management),以避免 使用者不當存取資料庫的資料。安全管理通常是以使用者 名稱(Username)和密碼(Password)來授予存取權限的 控制(Access Control),常用方式有兩種,如下所示:• 自由選擇存取控制(Discretionary Access Control;DAC):授予或 取消使用者擁有新增、刪除、更新或修改資料的權限。
• 強制存取控制(Mandatory Access Control;MAC):將資料和使用 者分類成不同的安全層級,使用者只能存取授予安全層級的資料 。
2-6-1 資料庫管理系統的基本功能 –
備份與回復管理
資料庫在運作中可能碰到系統當機、斷電或磁碟
損壞等突發狀況,所以,資料庫管理系統需要提 供備份和回復管理(Backup and Recover
Management),以保障資料的完整性和一致性。 資料庫備份是將資料庫的資料儲存到備份裝置。 當突發狀況產生時,因為資料庫管理系統會自動 產生交易記錄(Transaction Log),資料庫管理師 可以使用此記錄來了解交易(Transaction)狀態 ,回復管理就是參考交易記錄來正確的回存資料 。
2-6-1 資料庫管理系統的基本功能 –
交易管理
資料庫管理系統需要提供交易管理(Transaction Management)功能,可以讓多人同時進行交易, 如此就不會產生上述資料不符合的情況,稱為「 並行控制」(Concurrency Control)。 在執行交易時,資料庫管理系統需要自動建立每 次交易的交易記錄(Transaction Log),當突發狀 況產生時,這些記錄就是回復管理的重要參考依 據,以便能夠執行完整個交易,讓交易成功。2-6-1 資料庫管理系統的基本功能 –
資料完整性管理
資料庫管理系統能夠檢查新增或更新資料時,不 會產生資料不一致的資料完整性(Data Integrity) 問題。例如:帳戶餘額不能為負值;員工年齡不 可超過100歲。 資料庫管理系統的資料完整性管理(Data Integrity Management)就是維護資料庫中資料的一致性。 常見資料不一致的情況,如下所示: • 空值(NULL): • 重複資料(Redundancy Data) • 只能是特定值 • 是否在指定範圍內2-6-2 資料庫管理系統的系統架構 –
儲存管理
儲存管理(Storage Manager)對於簡單的資料庫 管理系統來說,就是作業系統的檔案管理,為了 效率考量,資料庫管理系統通常會自行配置磁碟 空間,將資料存入儲存裝置的資料庫。例如:硬 式磁碟機,或從資料庫讀取資料。 儲存管理可以再分為:檔案管理(File Manager) 實際配置磁碟空間後將資料存入磁碟,和緩衝區 管理(Buffer Manager)負責電腦記憶體的管理。2-6-2 資料庫管理系統的系統架構 –
查詢處理模組
負責處理使用者下達的查詢語言指令敘述,可以 再細分成多個模組來檢查語法和最佳化查詢指令 的處理程序。 查詢處理模組(Query Processor)是參考系統目 錄的中繼資料來進行「查詢轉換」(Query Transformation),將外部綱要查詢轉換成內部綱 要的查詢,或使用索引來加速資料查詢;如果是 交易,就交給交易管理來處理。2-6-2 資料庫管理系統的系統架構 –
交易管理
交易管理(Transaction Manager)主要分為:同名 的交易管理子系統,負責處理資料庫的交易,保 障資料庫商業交易的操作需要一併執行;「鎖定 管理」(Lock Manager)也稱為「並行控制管理 」(Concurrency-Control Manager)子系統來負責 資源鎖定。2-6-2 資料庫管理系統的系統架構 –
回復管理
回復管理(Recovery Manager)主要分為:「記錄 管理」(Log Manager)子系統,負責記錄資料庫 的所有操作,包含交易記錄,以便同名的回復管 理子系統能夠執行回復處理,回復資料庫系統的 資料庫內容。2-6-3 常見的資料庫管理系統 –
商用的資料庫管理系統
商用資料庫管理系統是由各軟體廠商所開發,使 用者或公司需要付費購買,當然軟體公司會提供 相關的技術支援,比較著名的商用資料庫管理系 統,如下所示: • SQL Server • Access • DB2 • Oracle • Sybase2-6-3 常見的資料庫管理系統 –
免費的資料庫管理系統
在網路上可以找到GNU和類似授權的免費資料庫 管理系統,雖然資料庫管理系統本身可以免費取 得,不過,並不提供相關的技術支援,或需付費 才能取得技術支援,如下所示: • MySQL • PostgreSQL • INGRES2-7 資料庫管理師
2-7-1 資料庫管理師扮演的角色 2-7-2 資料庫管理師負責的工作
2-7 資料庫管理師 – 說明
「資料庫管理師」(Database Administrator, DBA
)負責和執行一個成功資料庫環境的相關管理和 維護工作。事實上,資料庫管理師負責很多工作 ,它可以是一個人,也可能是一個小組來擔任。 簡單的說,資料庫管理師的主要目的是維護資料 庫系統的正常運作,並且提供使用者存取所需的 資料。
2-7-1 資料庫管理師扮演的角色
資料庫管理師負責資料庫系統的維護和管理,在
角色上是扮演中間協調與溝通的角色,如下圖所 示:
2-7-2 資料庫管理師負責的工作 –
維護資料庫綱要
資料庫管理師需要參與資料庫設計,提供資料庫 設計師關於概念層綱要的修改建議。 資料庫管理師需要負責從資料庫使用的資料庫模 型。例如:關聯式資料庫模型,和系統規格建立 有效的資料庫設計,也就是描述資料庫在儲存裝 置的實際資料結構。其主要工作如下所示: • 決定哪些資料存入資料庫 • 決定使用的資料結構 • 決定使用者觀點的資料2-7-2 資料庫管理師負責的工作 –
資料管理
資料庫管理師最主要的工作是資料管理,提供公 司或組織一個集中管理的資料庫,並且依據各部 門的需求,提供不同觀點的資料,其主要工作如 下所示: • 管理和維護系統目錄(System Catalog) • 使用者管理和存取控制• 資料安全控制(Data Security Control)
• 資料完整性檢查(Data Integrity Checking) • 轉換資料